{
struct i915_context *i915 = i915_context(pipe);
struct i915_buffer *buffer = i915_buffer(resource);
- struct pipe_transfer *transfer = util_slab_alloc(&i915->transfer_pool);
+ struct pipe_transfer *transfer = slab_alloc_st(&i915->transfer_pool);
- if (transfer == NULL)
+ if (!transfer)
return NULL;
transfer->resource = resource;
struct pipe_transfer *transfer)
{
struct i915_context *i915 = i915_context(pipe);
- util_slab_free(&i915->transfer_pool, transfer);
+ slab_free_st(&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);
}
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 */
};
buf->b.vtbl = &i915_buffer_vtbl;
pipe_reference_init(&buf->b.b.reference, 1);
buf->b.b.screen = screen;
- buf->data = align_malloc(template->width0, 16);
+ buf->data = align_malloc(template->width0, 64);
buf->free_on_destroy = TRUE;
if (!buf->data)