debug.c 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /* StarPU --- Runtime system for heterogeneous multicore architectures.
  2. *
  3. * Copyright (C) 2011-2012 Inria
  4. * Copyright (C) 2012,2017 CNRS
  5. * Copyright (C) 2010-2011 Université de Bordeaux
  6. *
  7. * StarPU is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU Lesser General Public License as published by
  9. * the Free Software Foundation; either version 2.1 of the License, or (at
  10. * your option) any later version.
  11. *
  12. * StarPU is distributed in the hope that it will be useful, but
  13. * WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  15. *
  16. * See the GNU Lesser General Public License in COPYING.LGPL for more details.
  17. */
  18. #include "socl.h"
  19. void ERROR_CL(char *s, cl_int err) {
  20. #define ERR_CASE(a) case a: ERROR_MSG("[OpenCL] %s CL error: %s\n", s, #a); break;
  21. switch(err) {
  22. case CL_SUCCESS:
  23. DEBUG_MSG("[OpenCL] %s SUCCESS.\n", s);
  24. break;
  25. ERR_CASE(CL_DEVICE_NOT_FOUND);
  26. ERR_CASE(CL_DEVICE_NOT_AVAILABLE);
  27. ERR_CASE(CL_COMPILER_NOT_AVAILABLE);
  28. ERR_CASE(CL_MEM_OBJECT_ALLOCATION_FAILURE);
  29. ERR_CASE(CL_OUT_OF_RESOURCES);
  30. ERR_CASE(CL_OUT_OF_HOST_MEMORY);
  31. ERR_CASE(CL_PROFILING_INFO_NOT_AVAILABLE);
  32. ERR_CASE(CL_MEM_COPY_OVERLAP);
  33. ERR_CASE(CL_IMAGE_FORMAT_MISMATCH);
  34. ERR_CASE(CL_IMAGE_FORMAT_NOT_SUPPORTED);
  35. ERR_CASE(CL_BUILD_PROGRAM_FAILURE);
  36. ERR_CASE(CL_MAP_FAILURE);
  37. ERR_CASE(CL_INVALID_VALUE);
  38. ERR_CASE(CL_INVALID_DEVICE_TYPE);
  39. ERR_CASE(CL_INVALID_PLATFORM);
  40. ERR_CASE(CL_INVALID_DEVICE);
  41. ERR_CASE(CL_INVALID_CONTEXT);
  42. ERR_CASE(CL_INVALID_QUEUE_PROPERTIES);
  43. ERR_CASE(CL_INVALID_COMMAND_QUEUE);
  44. ERR_CASE(CL_INVALID_HOST_PTR);
  45. ERR_CASE(CL_INVALID_MEM_OBJECT);
  46. ERR_CASE(CL_INVALID_IMAGE_FORMAT_DESCRIPTOR);
  47. ERR_CASE(CL_INVALID_IMAGE_SIZE);
  48. ERR_CASE(CL_INVALID_SAMPLER);
  49. ERR_CASE(CL_INVALID_BINARY);
  50. ERR_CASE(CL_INVALID_BUILD_OPTIONS);
  51. ERR_CASE(CL_INVALID_PROGRAM);
  52. ERR_CASE(CL_INVALID_PROGRAM_EXECUTABLE);
  53. ERR_CASE(CL_INVALID_KERNEL_NAME);
  54. ERR_CASE(CL_INVALID_KERNEL_DEFINITION);
  55. ERR_CASE(CL_INVALID_KERNEL);
  56. ERR_CASE(CL_INVALID_ARG_INDEX);
  57. ERR_CASE(CL_INVALID_ARG_VALUE);
  58. ERR_CASE(CL_INVALID_ARG_SIZE);
  59. ERR_CASE(CL_INVALID_KERNEL_ARGS);
  60. ERR_CASE(CL_INVALID_WORK_DIMENSION);
  61. ERR_CASE(CL_INVALID_WORK_GROUP_SIZE);
  62. ERR_CASE(CL_INVALID_WORK_ITEM_SIZE);
  63. ERR_CASE(CL_INVALID_GLOBAL_OFFSET);
  64. ERR_CASE(CL_INVALID_EVENT_WAIT_LIST);
  65. ERR_CASE(CL_INVALID_EVENT);
  66. ERR_CASE(CL_INVALID_OPERATION);
  67. ERR_CASE(CL_INVALID_GL_OBJECT);
  68. ERR_CASE(CL_INVALID_BUFFER_SIZE);
  69. ERR_CASE(CL_INVALID_MIP_LEVEL);
  70. ERR_CASE(CL_INVALID_GLOBAL_WORK_SIZE);
  71. default:
  72. ERROR_MSG("%s CL error: Error message not supported by ERROR_CL function (%d).\n", s, err);
  73. }
  74. }