aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Phillips <david@sighup.nz>2017-02-25 18:58:19 +1300
committerDavid Phillips <david@sighup.nz>2017-02-25 18:58:19 +1300
commit29ca840a2ebf8ebed0bc098e01590b6c8936330a (patch)
tree2e706b1fcc94abacae22ed40be7e7a3d04624092
parent40d12d89c9c6f168f69a042f1b3ca134fa19b341 (diff)
downloadfractal-gen-opencl-29ca840a2ebf8ebed0bc098e01590b6c8936330a.tar.xz
Improve OpenCL error reporting in tramp_init
-rw-r--r--trampoline.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/trampoline.c b/trampoline.c
index 3759adf..ef1ef14 100644
--- a/trampoline.c
+++ b/trampoline.c
@@ -118,8 +118,6 @@ int select_platform(const char *preferred_platform)
return 0;
}
-
-/* FIXME print cl error messages with oclErrorString */
int tramp_init(const char *preferred_platform)
{
cl_int ret;
@@ -130,8 +128,10 @@ int tramp_init(const char *preferred_platform)
/* FIXME expose device type to user */
ret = clGetDeviceIDs(platform, CL_DEVICE_TYPE_ALL, 0, NULL, &device_count);
- if (ret != CL_SUCCESS)
+ if (ret != CL_SUCCESS) {
+ fprintf(stderr, "Failed to get device count: %s ", get_cl_error_string(ret));
return 1;
+ }
devices = malloc(device_count * sizeof(cl_device_id));
if (!devices) {
@@ -141,18 +141,24 @@ int tramp_init(const char *preferred_platform)
/* FIXME expose device type to user */
ret = clGetDeviceIDs(platform, CL_DEVICE_TYPE_ALL, device_count, devices, NULL);
- if (ret != CL_SUCCESS)
+ if (ret != CL_SUCCESS) {
+ fprintf(stderr, "Failed to get device ID list: %s ", get_cl_error_string(ret));
return 1;
+ }
context = clCreateContext(0, 1, devices, NULL, NULL, &ret);
- if (ret != CL_SUCCESS)
+ if (ret != CL_SUCCESS) {
+ fprintf(stderr, "Failed to create CL context: %s ", get_cl_error_string(ret));
return 1;
+ }
/* FIXME expose to user */
device_in_use = 0;
command_queue = clCreateCommandQueue(context, devices[device_in_use], 0, &ret);
- if (ret != CL_SUCCESS)
+ if (ret != CL_SUCCESS) {
+ fprintf(stderr, "Failed to create command queue on context: %s ", get_cl_error_string(ret));
return 1;
+ }
return 0;
}