diff options
Diffstat (limited to 'src/gallium/drivers/svga/svga_resource_buffer.c')
-rw-r--r-- | src/gallium/drivers/svga/svga_resource_buffer.c | 36 |
1 files changed, 6 insertions, 30 deletions
diff --git a/src/gallium/drivers/svga/svga_resource_buffer.c b/src/gallium/drivers/svga/svga_resource_buffer.c index fa713ee88ad..87a4a9b7a82 100644 --- a/src/gallium/drivers/svga/svga_resource_buffer.c +++ b/src/gallium/drivers/svga/svga_resource_buffer.c @@ -62,17 +62,19 @@ svga_buffer_needs_hw_storage(unsigned usage) * the end result is exactly the same as if one DMA was used for every mapped * range. */ -static struct pipe_transfer * -svga_buffer_get_transfer(struct pipe_context *pipe, +static void * +svga_buffer_transfer_map(struct pipe_context *pipe, struct pipe_resource *resource, unsigned level, unsigned usage, - const struct pipe_box *box) + const struct pipe_box *box, + struct pipe_transfer **ptransfer) { struct svga_context *svga = svga_context(pipe); struct svga_screen *ss = svga_screen(pipe->screen); struct svga_buffer *sbuf = svga_buffer(resource); struct pipe_transfer *transfer; + uint8_t *map; transfer = CALLOC_STRUCT(pipe_transfer); if (transfer == NULL) { @@ -186,21 +188,6 @@ svga_buffer_get_transfer(struct pipe_context *pipe, } } - return transfer; -} - - -/** - * Map a range of a buffer. - */ -static void * -svga_buffer_transfer_map( struct pipe_context *pipe, - struct pipe_transfer *transfer ) -{ - struct svga_buffer *sbuf = svga_buffer(transfer->resource); - - uint8_t *map; - if (sbuf->swbuf) { /* User/malloc buffer */ map = sbuf->swbuf; @@ -218,6 +205,7 @@ svga_buffer_transfer_map( struct pipe_context *pipe, if (map) { ++sbuf->map.count; map += transfer->box.x; + *ptransfer = transfer; } return map; @@ -280,16 +268,6 @@ svga_buffer_transfer_unmap( struct pipe_context *pipe, } pipe_mutex_unlock(ss->swc_mutex); -} - - -/** - * Destroy transfer - */ -static void -svga_buffer_transfer_destroy(struct pipe_context *pipe, - struct pipe_transfer *transfer) -{ FREE(transfer); } @@ -325,8 +303,6 @@ struct u_resource_vtbl svga_buffer_vtbl = { u_default_resource_get_handle, /* get_handle */ svga_buffer_destroy, /* resource_destroy */ - svga_buffer_get_transfer, /* get_transfer */ - svga_buffer_transfer_destroy, /* transfer_destroy */ svga_buffer_transfer_map, /* transfer_map */ svga_buffer_transfer_flush_region, /* transfer_flush_region */ svga_buffer_transfer_unmap, /* transfer_unmap */ |