util_slab_free(&rctx->pool_transfers, transfer);
}
-static void r600_buffer_transfer_inline_write(struct pipe_context *pipe,
- struct pipe_resource *resource,
- unsigned level,
- unsigned usage,
- const struct pipe_box *box,
- const void *data,
- unsigned stride,
- unsigned layer_stride)
-{
- struct r600_context *rctx = (struct r600_context*)pipe;
- struct r600_resource *rbuffer = r600_resource(resource);
- uint8_t *map = NULL;
-
- assert(rbuffer->b.user_ptr == NULL);
-
- map = rctx->ws->buffer_map(rbuffer->buf, rctx->cs,
- PIPE_TRANSFER_WRITE | PIPE_TRANSFER_DISCARD_RANGE | usage);
-
- memcpy(map + box->x, data, box->width);
-
- rctx->ws->buffer_unmap(rbuffer->buf);
-}
-
static const struct u_resource_vtbl r600_buffer_vtbl =
{
u_default_resource_get_handle, /* get_handle */
r600_buffer_transfer_map, /* transfer_map */
r600_buffer_transfer_flush_region, /* transfer_flush_region */
r600_buffer_transfer_unmap, /* transfer_unmap */
- r600_buffer_transfer_inline_write /* transfer_inline_write */
+ NULL /* transfer_inline_write */
};
bool r600_init_resource(struct r600_screen *rscreen,
r600->context.transfer_flush_region = u_transfer_flush_region_vtbl;
r600->context.transfer_unmap = u_transfer_unmap_vtbl;
r600->context.transfer_destroy = u_transfer_destroy_vtbl;
- r600->context.transfer_inline_write = u_transfer_inline_write_vtbl;
+ r600->context.transfer_inline_write = u_default_transfer_inline_write;
}
uint64_t r600_resource_va(struct pipe_screen *screen, struct pipe_resource *resource)
r600_texture_transfer_map, /* transfer_map */
u_default_transfer_flush_region,/* transfer_flush_region */
r600_texture_transfer_unmap, /* transfer_unmap */
- u_default_transfer_inline_write /* transfer_inline_write */
+ NULL /* transfer_inline_write */
};
static struct r600_resource_texture *