i915g: Add buffer write callback
This commit is contained in:
parent
d112132840
commit
e589a37f7b
|
@ -150,6 +150,17 @@ struct intel_winsys {
|
||||||
void (*buffer_unmap)(struct intel_winsys *iws,
|
void (*buffer_unmap)(struct intel_winsys *iws,
|
||||||
struct intel_buffer *buffer);
|
struct intel_buffer *buffer);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write to a buffer.
|
||||||
|
*
|
||||||
|
* Arguments follows pwrite(2)
|
||||||
|
*/
|
||||||
|
int (*buffer_write)(struct intel_winsys *iws,
|
||||||
|
struct intel_buffer *dst,
|
||||||
|
const void *src,
|
||||||
|
size_t size,
|
||||||
|
size_t offset);
|
||||||
|
|
||||||
void (*buffer_destroy)(struct intel_winsys *iws,
|
void (*buffer_destroy)(struct intel_winsys *iws,
|
||||||
struct intel_buffer *buffer);
|
struct intel_buffer *buffer);
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
|
@ -110,6 +110,18 @@ intel_drm_buffer_unmap(struct intel_winsys *iws,
|
||||||
drm_intel_bo_unmap(intel_bo(buffer));
|
drm_intel_bo_unmap(intel_bo(buffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
intel_drm_buffer_write(struct intel_winsys *iws,
|
||||||
|
struct intel_buffer *buffer,
|
||||||
|
const void *data,
|
||||||
|
size_t size,
|
||||||
|
size_t offset)
|
||||||
|
{
|
||||||
|
struct intel_drm_buffer *buf = intel_drm_buffer(buffer);
|
||||||
|
|
||||||
|
return drm_intel_bo_subdata(buf->bo, offset, size, (void*)data);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
intel_drm_buffer_destroy(struct intel_winsys *iws,
|
intel_drm_buffer_destroy(struct intel_winsys *iws,
|
||||||
struct intel_buffer *buffer)
|
struct intel_buffer *buffer)
|
||||||
|
@ -131,5 +143,6 @@ intel_drm_winsys_init_buffer_functions(struct intel_drm_winsys *idws)
|
||||||
idws->base.buffer_set_fence_reg = intel_drm_buffer_set_fence_reg;
|
idws->base.buffer_set_fence_reg = intel_drm_buffer_set_fence_reg;
|
||||||
idws->base.buffer_map = intel_drm_buffer_map;
|
idws->base.buffer_map = intel_drm_buffer_map;
|
||||||
idws->base.buffer_unmap = intel_drm_buffer_unmap;
|
idws->base.buffer_unmap = intel_drm_buffer_unmap;
|
||||||
|
idws->base.buffer_write = intel_drm_buffer_write;
|
||||||
idws->base.buffer_destroy = intel_drm_buffer_destroy;
|
idws->base.buffer_destroy = intel_drm_buffer_destroy;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue