diff options
Diffstat (limited to 'src/gallium/drivers/i915')
-rw-r--r-- | src/gallium/drivers/i915/i915_resource.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/i915/i915_resource.h | 6 | ||||
-rw-r--r-- | src/gallium/drivers/i915/i915_resource_buffer.c | 19 | ||||
-rw-r--r-- | src/gallium/drivers/i915/i915_resource_texture.c | 3 |
4 files changed, 15 insertions, 16 deletions
diff --git a/src/gallium/drivers/i915/i915_resource.c b/src/gallium/drivers/i915/i915_resource.c index 3ffb0b7a5d2..8e5572b4cd4 100644 --- a/src/gallium/drivers/i915/i915_resource.c +++ b/src/gallium/drivers/i915/i915_resource.c @@ -39,7 +39,8 @@ i915_init_resource_functions(struct i915_context *i915 ) i915->base.transfer_map = u_transfer_map_vtbl; i915->base.transfer_flush_region = u_transfer_flush_region_vtbl; i915->base.transfer_unmap = u_transfer_unmap_vtbl; - i915->base.transfer_inline_write = u_transfer_inline_write_vtbl; + i915->base.buffer_subdata = i915_buffer_subdata; + i915->base.texture_subdata = u_default_texture_subdata; } void diff --git a/src/gallium/drivers/i915/i915_resource.h b/src/gallium/drivers/i915/i915_resource.h index 77fe8b70f79..0afd09501c6 100644 --- a/src/gallium/drivers/i915/i915_resource.h +++ b/src/gallium/drivers/i915/i915_resource.h @@ -129,4 +129,10 @@ struct pipe_resource * i915_buffer_create(struct pipe_screen *screen, const struct pipe_resource *template); +void +i915_buffer_subdata(struct pipe_context *rm_ctx, + struct pipe_resource *resource, + unsigned usage, unsigned offset, + unsigned size, const void *data); + #endif /* I915_RESOURCE_H */ diff --git a/src/gallium/drivers/i915/i915_resource_buffer.c b/src/gallium/drivers/i915/i915_resource_buffer.c index fb2e53b014f..24c954cae34 100644 --- a/src/gallium/drivers/i915/i915_resource_buffer.c +++ b/src/gallium/drivers/i915/i915_resource_buffer.c @@ -92,21 +92,15 @@ i915_buffer_transfer_unmap(struct pipe_context *pipe, util_slab_free(&i915->transfer_pool, transfer); } -static void -i915_buffer_transfer_inline_write( struct pipe_context *rm_ctx, - struct pipe_resource *resource, - unsigned level, - unsigned usage, - const struct pipe_box *box, - const void *data, - unsigned stride, - unsigned layer_stride) +void +i915_buffer_subdata(struct pipe_context *rm_ctx, + struct pipe_resource *resource, + unsigned usage, unsigned offset, + unsigned size, const void *data) { struct i915_buffer *buffer = i915_buffer(resource); - memcpy(buffer->data + box->x, - data, - box->width); + memcpy(buffer->data + offset, data, size); } @@ -117,7 +111,6 @@ struct u_resource_vtbl i915_buffer_vtbl = i915_buffer_transfer_map, /* transfer_map */ u_default_transfer_flush_region, /* transfer_flush_region */ i915_buffer_transfer_unmap, /* transfer_unmap */ - i915_buffer_transfer_inline_write /* transfer_inline_write */ }; diff --git a/src/gallium/drivers/i915/i915_resource_texture.c b/src/gallium/drivers/i915/i915_resource_texture.c index af9d97a8acc..f77bbfde181 100644 --- a/src/gallium/drivers/i915/i915_resource_texture.c +++ b/src/gallium/drivers/i915/i915_resource_texture.c @@ -818,7 +818,7 @@ i915_texture_transfer_unmap(struct pipe_context *pipe, } #if 0 -static void i915_transfer_inline_write( struct pipe_context *pipe, +static void i915_texture_subdata(struct pipe_context *pipe, struct pipe_resource *resource, unsigned level, unsigned usage, @@ -913,7 +913,6 @@ struct u_resource_vtbl i915_texture_vtbl = i915_texture_transfer_map, /* transfer_map */ u_default_transfer_flush_region, /* transfer_flush_region */ i915_texture_transfer_unmap, /* transfer_unmap */ - u_default_transfer_inline_write /* transfer_inline_write */ }; |