From: Luo Xionghu <xionghu....@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....@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 _______________________________________________ Beignet mailing list Beignet@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/beignet