[Beignet] [PATCH] check image from buffer's base address alignment.
xionghu.luo at intel.com
xionghu.luo at intel.com
Mon Nov 16 02:14:46 PST 2015
From: Luo Xionghu <xionghu.luo at intel.com>
per spec, if create image from USE_HOST_PTR buffer, the buffer's base
address need be aligned.
Signed-off-by: Luo Xionghu <xionghu.luo at intel.com>
---
src/cl_mem.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/cl_mem.c b/src/cl_mem.c
index 9a6bb83..96b9381 100644
--- a/src/cl_mem.c
+++ b/src/cl_mem.c
@@ -327,6 +327,12 @@ cl_mem_allocate(enum cl_mem_type type,
}
if(type == CL_MEM_IMAGE_TYPE && buffer != NULL) {
+ // if create image from USE_HOST_PTR buffer, the buffer's base address need be aligned.
+ if(buffer->is_userptr) {
+ int base_alignement = 0;
+ cl_get_device_info(ctx->device, CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT, sizeof(base_alignement), &base_alignement, NULL);
+ assert(ALIGN((unsigned long)buffer->host_ptr, base_alignement) == (unsigned long)buffer->host_ptr);
+ }
// if the image if created from buffer, should use the bo directly to share same bo.
mem->bo = buffer->bo;
cl_mem_image(mem)->is_image_from_buffer = 1;
--
1.9.1
More information about the Beignet
mailing list