summaryrefslogtreecommitdiff
path: root/src/cl_context.c
diff options
context:
space:
mode:
authorYan Wang <yan.wang@linux.intel.com>2017-05-16 19:03:33 +0800
committerYang Rong <rong.r.yang@intel.com>2017-05-18 17:35:30 +0800
commit9f6001fed00bb409cd416b86b448ddbb2cb4793c (patch)
tree2e2150816ccd01b786a03f3224e0bc03019a82a5 /src/cl_context.c
parent260269a9a5e3a941b0f03b1563d381444279cb7b (diff)
downloadbeignet-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.c6
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]) {