diff options
author | David Phillips <david@sighup.nz> | 2017-02-12 21:04:58 +1300 |
---|---|---|
committer | David Phillips <david@sighup.nz> | 2017-02-12 21:12:05 +1300 |
commit | 6605c05adf8775eddb1d4045b408895e0183f931 (patch) | |
tree | edb9333d528d8fa22b900bbf7cccc57966cbe945 /cl_error.c | |
parent | c83eacc524ffd0cc3e93a2b88ea69e98c04859ec (diff) | |
download | fractal-gen-opencl-6605c05adf8775eddb1d4045b408895e0183f931.tar.xz |
Add stringy CL error messages
Diffstat (limited to 'cl_error.c')
-rw-r--r-- | cl_error.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/cl_error.c b/cl_error.c new file mode 100644 index 0000000..293a3d8 --- /dev/null +++ b/cl_error.c @@ -0,0 +1,84 @@ +#include <cl.h> + +static const char *cl_error_strings[] = { + "CL_SUCCESS", + "CL_DEVICE_NOT_FOUND", + "CL_DEVICE_NOT_AVAILABLE", + "CL_COMPILER_NOT_AVAILABLE", + "CL_MEM_OBJECT_ALLOCATION_FAILURE", + "CL_OUT_OF_RESOURCES", + "CL_OUT_OF_HOST_MEMORY", + "CL_PROFILING_INFO_NOT_AVAILABLE", + "CL_MEM_COPY_OVERLAP", + "CL_IMAGE_FORMAT_MISMATCH", + "CL_IMAGE_FORMAT_NOT_SUPPORTED", + "CL_BUILD_PROGRAM_FAILURE", + "CL_MAP_FAILURE", + "CL_MISALIGNED_SUB_BUFFER_OFFSET", + "CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST", + "CL_COMPILE_PROGRAM_FAILURE", + "CL_LINKER_NOT_AVAILABLE", + "CL_LINK_PROGRAM_FAILURE", + "CL_DEVICE_PARTITION_FAILED", + "CL_KERNEL_ARG_INFO_NOT_AVAILABLE", + "(Invalid)", + "(Invalid)", + "(Invalid)", + "(Invalid)", + "(Invalid)", + "(Invalid)", + "(Invalid)", + "(Invalid)", + "(Invalid)", + "(Invalid)", + "CL_INVALID_VALUE", + "CL_INVALID_DEVICE_TYPE", + "CL_INVALID_PLATFORM", + "CL_INVALID_DEVICE", + "CL_INVALID_CONTEXT", + "CL_INVALID_QUEUE_PROPERTIES", + "CL_INVALID_COMMAND_QUEUE", + "CL_INVALID_HOST_PTR", + "CL_INVALID_MEM_OBJECT", + "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR", + "CL_INVALID_IMAGE_SIZE", + "CL_INVALID_SAMPLER", + "CL_INVALID_BINARY", + "CL_INVALID_BUILD_OPTIONS", + "CL_INVALID_PROGRAM", + "CL_INVALID_PROGRAM_EXECUTABLE", + "CL_INVALID_KERNEL_NAME", + "CL_INVALID_KERNEL_DEFINITION", + "CL_INVALID_KERNEL", + "CL_INVALID_ARG_INDEX", + "CL_INVALID_ARG_VALUE", + "CL_INVALID_ARG_SIZE", + "CL_INVALID_KERNEL_ARGS", + "CL_INVALID_WORK_DIMENSION", + "CL_INVALID_WORK_GROUP_SIZE", + "CL_INVALID_WORK_ITEM_SIZE", + "CL_INVALID_GLOBAL_OFFSET", + "CL_INVALID_EVENT_WAIT_LIST", + "CL_INVALID_EVENT", + "CL_INVALID_OPERATION", + "CL_INVALID_GL_OBJECT", + "CL_INVALID_BUFFER_SIZE", + "CL_INVALID_MIP_LEVEL", + "CL_INVALID_GLOBAL_WORK_SIZE", + "CL_INVALID_PROPERTY", + "CL_INVALID_IMAGE_DESCRIPTOR", + "CL_INVALID_COMPILER_OPTIONS", + "CL_INVALID_LINKER_OPTIONS", + "CL_INVALID_DEVICE_PARTITION_COUNT", + "CL_INVALID_PIPE_SIZE", + "CL_INVALID_DEVICE_QUEUE", +}; + +const char *get_cl_error_string(cl_int error) +{ + error = -error; + if (error < 0 || error > sizeof(cl_error_strings) / sizeof(const char *)) + return "Error value out of bounds"; + + return cl_error_strings[error]; +} |