From 2d5b522b112847daaa8385b7db106d16fc86c8c3 Mon Sep 17 00:00:00 2001 From: Yang Rong Date: Wed, 27 Nov 2013 14:06:50 +0800 Subject: [PATCH] Enlarge the global mem size. When create image, due to alignment, will casue size large than max alloc size. Enlarge the global memory size and using it to check size when alloc. Signed-off-by: Yang Rong Reviewed-by: Zhigang Gong --- src/cl_gt_device.h | 2 +- src/cl_mem.c | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/cl_gt_device.h b/src/cl_gt_device.h index e8fa362..d53588f 100644 --- a/src/cl_gt_device.h +++ b/src/cl_gt_device.h @@ -51,7 +51,7 @@ .min_data_type_align_size = sizeof(cl_long) * 16, .single_fp_config = 0, /* XXX */ .global_mem_cache_type = CL_READ_WRITE_CACHE, -.global_mem_size = 128 * 1024 * 1024, +.global_mem_size = 256 * 1024 * 1024, .max_constant_buffer_size = 512 << 10, .max_constant_args = 8, .error_correction_support = CL_FALSE, diff --git a/src/cl_mem.c b/src/cl_mem.c index 8c9f8a8..1380176 100644 --- a/src/cl_mem.c +++ b/src/cl_mem.c @@ -59,12 +59,7 @@ cl_get_mem_object_type(cl_mem mem) case CL_MEM_GL_IMAGE_TYPE: { struct _cl_mem_image *image = cl_mem_image(mem); - if (image->depth == 1) - return CL_MEM_OBJECT_IMAGE1D; - else if (image->depth == 2) - return CL_MEM_OBJECT_IMAGE2D; - else if (image->depth == 3) - return CL_MEM_OBJECT_IMAGE3D; + return image->image_type; } default: return CL_MEM_OBJECT_BUFFER; @@ -209,8 +204,9 @@ cl_mem_allocate(enum cl_mem_type type, assert(ctx); + /* Due to alignment, the image size may exceed alloc max size, check global mem instead */ if ((err = cl_get_device_info(ctx->device, - CL_DEVICE_MAX_MEM_ALLOC_SIZE, + CL_DEVICE_GLOBAL_MEM_SIZE, sizeof(max_mem_size), &max_mem_size, NULL)) != CL_SUCCESS) { -- 2.7.4