diff options
author | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2018-06-20 12:31:13 +0200 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2018-06-20 12:31:13 +0200 |
commit | b75d0b81ce753ade86916ecd265fb3c1a7477654 (patch) | |
tree | 5e3eb49424be0f906ff6c0c705e08fa564fb1215 /contrib | |
parent | 69ca2b497ed71c8e71bee33940f0377e1d9f814f (diff) | |
download | ufo-filters-b75d0b81ce753ade86916ecd265fb3c1a7477654.tar.gz ufo-filters-b75d0b81ce753ade86916ecd265fb3c1a7477654.tar.bz2 ufo-filters-b75d0b81ce753ade86916ecd265fb3c1a7477654.tar.xz ufo-filters-b75d0b81ce753ade86916ecd265fb3c1a7477654.zip |
Fix #166: propagate OpenCL errors if possible
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/ufo-med-mad-reject-task.c | 2 | ||||
-rw-r--r-- | contrib/ufo-ocl-1liner-task.c | 2 | ||||
-rw-r--r-- | contrib/ufo-stat-monitor-task.c | 26 |
3 files changed, 15 insertions, 15 deletions
diff --git a/contrib/ufo-med-mad-reject-task.c b/contrib/ufo-med-mad-reject-task.c index 7c634d9..14d03a4 100644 --- a/contrib/ufo-med-mad-reject-task.c +++ b/contrib/ufo-med-mad-reject-task.c @@ -88,7 +88,7 @@ ufo_med_mad_reject_task_setup (UfoTask *task, priv->kernel = ufo_resources_get_kernel (resources, "med-mad-reject.cl", "outliersRej_MedMad_3x3x3_f32", NULL, error); if (priv->kernel != NULL) - UFO_RESOURCES_CHECK_CLERR (clRetainKernel (priv->kernel)); + UFO_RESOURCES_CHECK_AND_SET (clRetainKernel (priv->kernel), error); } // This one is called for each frame, so that it can adapt from one to the other frame diff --git a/contrib/ufo-ocl-1liner-task.c b/contrib/ufo-ocl-1liner-task.c index e941fdd..b0a0e4e 100644 --- a/contrib/ufo-ocl-1liner-task.c +++ b/contrib/ufo-ocl-1liner-task.c @@ -119,7 +119,7 @@ ufo_ocl_1liner_task_setup (UfoTask *task, priv->kernel = ufo_resources_get_kernel_from_source (resources, kernel_src, "ocl_1liner", NULL, error); /* Done compiling sources into a kernel, if existing retain it */ if (priv->kernel != NULL) - UFO_RESOURCES_CHECK_CLERR (clRetainKernel (priv->kernel)); + UFO_RESOURCES_CHECK_AND_SET (clRetainKernel (priv->kernel), error); exit: /* Releasing resources no longer used */ diff --git a/contrib/ufo-stat-monitor-task.c b/contrib/ufo-stat-monitor-task.c index 2a11d6d..ab31c9b 100644 --- a/contrib/ufo-stat-monitor-task.c +++ b/contrib/ufo-stat-monitor-task.c @@ -87,8 +87,8 @@ ufo_stat_monitor_task_setup (UfoTask *task, node = UFO_GPU_NODE (ufo_task_node_get_proc_node (UFO_TASK_NODE (task))); cmd_queue = ufo_gpu_node_get_cmd_queue (node); - UFO_RESOURCES_CHECK_CLERR (clGetCommandQueueInfo (cmd_queue, CL_QUEUE_DEVICE, sizeof (cl_device_id), &dev_cl, NULL)); - UFO_RESOURCES_CHECK_CLERR (clGetCommandQueueInfo (cmd_queue, CL_QUEUE_CONTEXT, sizeof (cl_context), &context_cl, NULL)); + UFO_RESOURCES_CHECK_SET_AND_RETURN (clGetCommandQueueInfo (cmd_queue, CL_QUEUE_DEVICE, sizeof (cl_device_id), &dev_cl, NULL), error); + UFO_RESOURCES_CHECK_SET_AND_RETURN (clGetCommandQueueInfo (cmd_queue, CL_QUEUE_CONTEXT, sizeof (cl_context), &context_cl, NULL), error); priv = UFO_STAT_MONITOR_TASK_GET_PRIVATE (task); @@ -107,14 +107,14 @@ ufo_stat_monitor_task_setup (UfoTask *task, if (priv->kernel == NULL || priv->kernel_final == NULL) return; - UFO_RESOURCES_CHECK_CLERR (clRetainKernel (priv->kernel)); - UFO_RESOURCES_CHECK_CLERR (clRetainKernel (priv->kernel_final)); + UFO_RESOURCES_CHECK_SET_AND_RETURN (clRetainKernel (priv->kernel), error); + UFO_RESOURCES_CHECK_SET_AND_RETURN (clRetainKernel (priv->kernel_final), error); - UFO_RESOURCES_CHECK_CLERR (clGetDeviceInfo (dev_cl, CL_DEVICE_LOCAL_MEM_SIZE, sizeof(cl_ulong), &(priv->max_local_mem), NULL)); - UFO_RESOURCES_CHECK_CLERR (clGetDeviceInfo (dev_cl, CL_DEVICE_MAX_COMPUTE_UNITS, sizeof(cl_uint), &num_cu, NULL)); - UFO_RESOURCES_CHECK_CLERR (clGetDeviceInfo (dev_cl, CL_DEVICE_MAX_WORK_GROUP_SIZE, sizeof(size_t), &max_wgs, NULL)); - UFO_RESOURCES_CHECK_CLERR (clGetDeviceInfo (dev_cl, CL_DEVICE_MAX_WORK_ITEM_SIZES, sizeof(max_wis), max_wis, NULL)); - UFO_RESOURCES_CHECK_CLERR (clGetKernelWorkGroupInfo (priv->kernel, dev_cl, CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, sizeof(size_t), &ker_pref_wgs, NULL)); + UFO_RESOURCES_CHECK_SET_AND_RETURN (clGetDeviceInfo (dev_cl, CL_DEVICE_LOCAL_MEM_SIZE, sizeof(cl_ulong), &(priv->max_local_mem), NULL), error); + UFO_RESOURCES_CHECK_SET_AND_RETURN (clGetDeviceInfo (dev_cl, CL_DEVICE_MAX_COMPUTE_UNITS, sizeof(cl_uint), &num_cu, NULL), error); + UFO_RESOURCES_CHECK_SET_AND_RETURN (clGetDeviceInfo (dev_cl, CL_DEVICE_MAX_WORK_GROUP_SIZE, sizeof(size_t), &max_wgs, NULL), error); + UFO_RESOURCES_CHECK_SET_AND_RETURN (clGetDeviceInfo (dev_cl, CL_DEVICE_MAX_WORK_ITEM_SIZES, sizeof(max_wis), max_wis, NULL), error); + UFO_RESOURCES_CHECK_SET_AND_RETURN (clGetKernelWorkGroupInfo (priv->kernel, dev_cl, CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, sizeof(size_t), &ker_pref_wgs, NULL), error); /* 4 work-groups per comput unit. */ priv->wg_num = num_cu << 2; @@ -179,18 +179,18 @@ ufo_stat_monitor_task_setup (UfoTask *task, if ( priv->node_has_fp64 ) { /* min, max, mean, sd (one 4-tuple per work-group) */ priv->stat_out_buff = clCreateBuffer (context_cl, CL_MEM_READ_WRITE | CL_MEM_HOST_NO_ACCESS, priv->wg_num << 5, NULL, &err_code); - UFO_RESOURCES_CHECK_CLERR (err_code); + UFO_RESOURCES_CHECK_SET_AND_RETURN (err_code, error); /* min, max, mean, sd (one 4-tuple once only) */ priv->stat_out_red = clCreateBuffer (context_cl, CL_MEM_READ_WRITE | CL_MEM_HOST_READ_ONLY, 1 << 5, NULL, &err_code); - UFO_RESOURCES_CHECK_CLERR (err_code); + UFO_RESOURCES_CHECK_SET_AND_RETURN (err_code, error); } else { /* min, max, mean, sd (one 4-tuple per work-group) */ priv->stat_out_buff = clCreateBuffer (context_cl, CL_MEM_READ_WRITE | CL_MEM_HOST_NO_ACCESS, priv->wg_num << 4, NULL, &err_code); - UFO_RESOURCES_CHECK_CLERR (err_code); + UFO_RESOURCES_CHECK_SET_AND_RETURN (err_code, error); /* min, max, mean, sd (one 4-tuple once only) */ priv->stat_out_red = clCreateBuffer (context_cl, CL_MEM_READ_WRITE | CL_MEM_HOST_READ_ONLY, 1 << 4, NULL, &err_code); - UFO_RESOURCES_CHECK_CLERR (err_code); + UFO_RESOURCES_CHECK_SET_AND_RETURN (err_code, error); } } |