diff options
author | Yan Wang <yan.wang@linux.intel.com> | 2017-05-16 19:03:33 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2017-05-18 17:35:30 +0800 |
commit | 9f6001fed00bb409cd416b86b448ddbb2cb4793c (patch) | |
tree | 2e2150816ccd01b786a03f3224e0bc03019a82a5 /src/cl_context.c | |
parent | 260269a9a5e3a941b0f03b1563d381444279cb7b (diff) | |
download | beignet-9f6001fed00bb409cd416b86b448ddbb2cb4793c.tar.gz |
Create image with TILE_Y mode still when image size>128MB for performance.
It may failed to copy data from host ptr to TILE_Y large image.
So use clCopyBufferToImage to do this on GPU side.
Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
Reviewed-by: Yang Rong <rong.r.yang@intel.com>
Diffstat (limited to 'src/cl_context.c')
-rw-r--r-- | src/cl_context.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cl_context.c b/src/cl_context.c index 1ba23024..4b8281c1 100644 --- a/src/cl_context.c +++ b/src/cl_context.c @@ -342,6 +342,7 @@ cl_context_new(struct _cl_context_prop *props, cl_uint dev_num, cl_device_id* al TRY_ALLOC_NO_ERR (ctx->drv, cl_driver_new(props)); ctx->props = *props; ctx->ver = cl_driver_get_ver(ctx->drv); + ctx->image_queue = NULL; exit: return ctx; @@ -362,6 +363,11 @@ cl_context_delete(cl_context ctx) if (CL_OBJECT_DEC_REF(ctx) > 1) return; + if (ctx->image_queue) { + clReleaseCommandQueue(ctx->image_queue); + ctx->image_queue = NULL; + } + /* delete the internal programs. */ for (i = CL_INTERNAL_KERNEL_MIN; i < CL_INTERNAL_KERNEL_MAX; i++) { if (ctx->internal_kernels[i]) { |