|
14 | 14 |
|
15 | 15 | #include "GPUReconstructionOCLIncludesHost.h" |
16 | 16 |
|
| 17 | +#include <map> |
| 18 | + |
17 | 19 | static_assert(std::is_convertible<cl_event, void*>::value, "OpenCL event type incompatible to deviceEvent"); |
18 | 20 |
|
19 | 21 | #define GPUErrorReturn(...) \ |
@@ -586,100 +588,70 @@ int32_t GPUReconstructionOCLBackend::GetOCLPrograms() |
586 | 588 |
|
587 | 589 | const char* GPUReconstructionOCLBackend::convertErrorToString(int32_t errorcode) |
588 | 590 | { |
589 | | - switch (errorcode) { |
590 | | - case CL_SUCCESS: |
591 | | - return "Success!"; |
592 | | - case CL_DEVICE_NOT_FOUND: |
593 | | - return "Device not found."; |
594 | | - case CL_DEVICE_NOT_AVAILABLE: |
595 | | - return "Device not available"; |
596 | | - case CL_COMPILER_NOT_AVAILABLE: |
597 | | - return "Compiler not available"; |
598 | | - case CL_MEM_OBJECT_ALLOCATION_FAILURE: |
599 | | - return "Memory object allocation failure"; |
600 | | - case CL_OUT_OF_RESOURCES: |
601 | | - return "Out of resources"; |
602 | | - case CL_OUT_OF_HOST_MEMORY: |
603 | | - return "Out of host memory"; |
604 | | - case CL_PROFILING_INFO_NOT_AVAILABLE: |
605 | | - return "Profiling information not available"; |
606 | | - case CL_MEM_COPY_OVERLAP: |
607 | | - return "Memory copy overlap"; |
608 | | - case CL_IMAGE_FORMAT_MISMATCH: |
609 | | - return "Image format mismatch"; |
610 | | - case CL_IMAGE_FORMAT_NOT_SUPPORTED: |
611 | | - return "Image format not supported"; |
612 | | - case CL_BUILD_PROGRAM_FAILURE: |
613 | | - return "Program build failure"; |
614 | | - case CL_MAP_FAILURE: |
615 | | - return "Map failure"; |
616 | | - case CL_INVALID_VALUE: |
617 | | - return "Invalid value"; |
618 | | - case CL_INVALID_DEVICE_TYPE: |
619 | | - return "Invalid device type"; |
620 | | - case CL_INVALID_PLATFORM: |
621 | | - return "Invalid platform"; |
622 | | - case CL_INVALID_DEVICE: |
623 | | - return "Invalid device"; |
624 | | - case CL_INVALID_CONTEXT: |
625 | | - return "Invalid context"; |
626 | | - case CL_INVALID_QUEUE_PROPERTIES: |
627 | | - return "Invalid queue properties"; |
628 | | - case CL_INVALID_COMMAND_QUEUE: |
629 | | - return "Invalid command queue"; |
630 | | - case CL_INVALID_HOST_PTR: |
631 | | - return "Invalid host pointer"; |
632 | | - case CL_INVALID_MEM_OBJECT: |
633 | | - return "Invalid memory object"; |
634 | | - case CL_INVALID_IMAGE_FORMAT_DESCRIPTOR: |
635 | | - return "Invalid image format descriptor"; |
636 | | - case CL_INVALID_IMAGE_SIZE: |
637 | | - return "Invalid image size"; |
638 | | - case CL_INVALID_SAMPLER: |
639 | | - return "Invalid sampler"; |
640 | | - case CL_INVALID_BINARY: |
641 | | - return "Invalid binary"; |
642 | | - case CL_INVALID_BUILD_OPTIONS: |
643 | | - return "Invalid build options"; |
644 | | - case CL_INVALID_PROGRAM: |
645 | | - return "Invalid program"; |
646 | | - case CL_INVALID_PROGRAM_EXECUTABLE: |
647 | | - return "Invalid program executable"; |
648 | | - case CL_INVALID_KERNEL_NAME: |
649 | | - return "Invalid kernel name"; |
650 | | - case CL_INVALID_KERNEL_DEFINITION: |
651 | | - return "Invalid kernel definition"; |
652 | | - case CL_INVALID_KERNEL: |
653 | | - return "Invalid kernel"; |
654 | | - case CL_INVALID_ARG_INDEX: |
655 | | - return "Invalid argument index"; |
656 | | - case CL_INVALID_ARG_VALUE: |
657 | | - return "Invalid argument value"; |
658 | | - case CL_INVALID_ARG_SIZE: |
659 | | - return "Invalid argument size"; |
660 | | - case CL_INVALID_KERNEL_ARGS: |
661 | | - return "Invalid kernel arguments"; |
662 | | - case CL_INVALID_WORK_DIMENSION: |
663 | | - return "Invalid work dimension"; |
664 | | - case CL_INVALID_WORK_GROUP_SIZE: |
665 | | - return "Invalid work group size"; |
666 | | - case CL_INVALID_WORK_ITEM_SIZE: |
667 | | - return "Invalid work item size"; |
668 | | - case CL_INVALID_GLOBAL_OFFSET: |
669 | | - return "Invalid global offset"; |
670 | | - case CL_INVALID_EVENT_WAIT_LIST: |
671 | | - return "Invalid event wait list"; |
672 | | - case CL_INVALID_EVENT: |
673 | | - return "Invalid event"; |
674 | | - case CL_INVALID_OPERATION: |
675 | | - return "Invalid operation"; |
676 | | - case CL_INVALID_GL_OBJECT: |
677 | | - return "Invalid OpenGL object"; |
678 | | - case CL_INVALID_BUFFER_SIZE: |
679 | | - return "Invalid buffer size"; |
680 | | - case CL_INVALID_MIP_LEVEL: |
681 | | - return "Invalid mip-map level"; |
682 | | - default: |
683 | | - return "Unknown Errorcode"; |
684 | | - } |
| 591 | + static const std::map<cl_int, const char*> error_map = { |
| 592 | + {CL_SUCCESS, "CL_SUCCESS"}, |
| 593 | + {CL_DEVICE_NOT_FOUND, "CL_DEVICE_NOT_FOUND"}, |
| 594 | + {CL_DEVICE_NOT_AVAILABLE, "CL_DEVICE_NOT_AVAILABLE"}, |
| 595 | + {CL_COMPILER_NOT_AVAILABLE, "CL_COMPILER_NOT_AVAILABLE"}, |
| 596 | + {CL_MEM_OBJECT_ALLOCATION_FAILURE, "CL_MEM_OBJECT_ALLOCATION_FAILURE"}, |
| 597 | + {CL_OUT_OF_RESOURCES, "CL_OUT_OF_RESOURCES"}, |
| 598 | + {CL_OUT_OF_HOST_MEMORY, "CL_OUT_OF_HOST_MEMORY"}, |
| 599 | + {CL_PROFILING_INFO_NOT_AVAILABLE, "CL_PROFILING_INFO_NOT_AVAILABLE"}, |
| 600 | + {CL_MEM_COPY_OVERLAP, "CL_MEM_COPY_OVERLAP"}, |
| 601 | + {CL_IMAGE_FORMAT_MISMATCH, "CL_IMAGE_FORMAT_MISMATCH"}, |
| 602 | + {CL_IMAGE_FORMAT_NOT_SUPPORTED, "CL_IMAGE_FORMAT_NOT_SUPPORTED"}, |
| 603 | + {CL_BUILD_PROGRAM_FAILURE, "CL_BUILD_PROGRAM_FAILURE"}, |
| 604 | + {CL_MAP_FAILURE, "CL_MAP_FAILURE"}, |
| 605 | + {CL_MISALIGNED_SUB_BUFFER_OFFSET, "CL_MISALIGNED_SUB_BUFFER_OFFSET"}, |
| 606 | + {CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST, "CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST"}, |
| 607 | + {CL_COMPILE_PROGRAM_FAILURE, "CL_COMPILE_PROGRAM_FAILURE"}, |
| 608 | + {CL_LINKER_NOT_AVAILABLE, "CL_LINKER_NOT_AVAILABLE"}, |
| 609 | + {CL_LINK_PROGRAM_FAILURE, "CL_LINK_PROGRAM_FAILURE"}, |
| 610 | + {CL_DEVICE_PARTITION_FAILED, "CL_DEVICE_PARTITION_FAILED"}, |
| 611 | + {CL_KERNEL_ARG_INFO_NOT_AVAILABLE, "CL_KERNEL_ARG_INFO_NOT_AVAILABLE"}, |
| 612 | + {CL_INVALID_VALUE, "CL_INVALID_VALUE"}, |
| 613 | + {CL_INVALID_DEVICE_TYPE, "CL_INVALID_DEVICE_TYPE"}, |
| 614 | + {CL_INVALID_PLATFORM, "CL_INVALID_PLATFORM"}, |
| 615 | + {CL_INVALID_DEVICE, "CL_INVALID_DEVICE"}, |
| 616 | + {CL_INVALID_CONTEXT, "CL_INVALID_CONTEXT"}, |
| 617 | + {CL_INVALID_QUEUE_PROPERTIES, "CL_INVALID_QUEUE_PROPERTIES"}, |
| 618 | + {CL_INVALID_COMMAND_QUEUE, "CL_INVALID_COMMAND_QUEUE"}, |
| 619 | + {CL_INVALID_HOST_PTR, "CL_INVALID_HOST_PTR"}, |
| 620 | + {CL_INVALID_MEM_OBJECT, "CL_INVALID_MEM_OBJECT"}, |
| 621 | + {CL_INVALID_IMAGE_FORMAT_DESCRIPTOR, "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR"}, |
| 622 | + {CL_INVALID_IMAGE_SIZE, "CL_INVALID_IMAGE_SIZE"}, |
| 623 | + {CL_INVALID_SAMPLER, "CL_INVALID_SAMPLER"}, |
| 624 | + {CL_INVALID_BINARY, "CL_INVALID_BINARY"}, |
| 625 | + {CL_INVALID_BUILD_OPTIONS, "CL_INVALID_BUILD_OPTIONS"}, |
| 626 | + {CL_INVALID_PROGRAM, "CL_INVALID_PROGRAM"}, |
| 627 | + {CL_INVALID_PROGRAM_EXECUTABLE, "CL_INVALID_PROGRAM_EXECUTABLE"}, |
| 628 | + {CL_INVALID_KERNEL_NAME, "CL_INVALID_KERNEL_NAME"}, |
| 629 | + {CL_INVALID_KERNEL_DEFINITION, "CL_INVALID_KERNEL_DEFINITION"}, |
| 630 | + {CL_INVALID_KERNEL, "CL_INVALID_KERNEL"}, |
| 631 | + {CL_INVALID_ARG_INDEX, "CL_INVALID_ARG_INDEX"}, |
| 632 | + {CL_INVALID_ARG_VALUE, "CL_INVALID_ARG_VALUE"}, |
| 633 | + {CL_INVALID_ARG_SIZE, "CL_INVALID_ARG_SIZE"}, |
| 634 | + {CL_INVALID_KERNEL_ARGS, "CL_INVALID_KERNEL_ARGS"}, |
| 635 | + {CL_INVALID_WORK_DIMENSION, "CL_INVALID_WORK_DIMENSION"}, |
| 636 | + {CL_INVALID_WORK_GROUP_SIZE, "CL_INVALID_WORK_GROUP_SIZE"}, |
| 637 | + {CL_INVALID_WORK_ITEM_SIZE, "CL_INVALID_WORK_ITEM_SIZE"}, |
| 638 | + {CL_INVALID_GLOBAL_OFFSET, "CL_INVALID_GLOBAL_OFFSET"}, |
| 639 | + {CL_INVALID_EVENT_WAIT_LIST, "CL_INVALID_EVENT_WAIT_LIST"}, |
| 640 | + {CL_INVALID_EVENT, "CL_INVALID_EVENT"}, |
| 641 | + {CL_INVALID_OPERATION, "CL_INVALID_OPERATION"}, |
| 642 | + {CL_INVALID_GL_OBJECT, "CL_INVALID_GL_OBJECT"}, |
| 643 | + {CL_INVALID_BUFFER_SIZE, "CL_INVALID_BUFFER_SIZE"}, |
| 644 | + {CL_INVALID_MIP_LEVEL, "CL_INVALID_MIP_LEVEL"}, |
| 645 | + {CL_INVALID_GLOBAL_WORK_SIZE, "CL_INVALID_GLOBAL_WORK_SIZE"}, |
| 646 | + {CL_INVALID_PROPERTY, "CL_INVALID_PROPERTY"}, |
| 647 | + {CL_INVALID_IMAGE_DESCRIPTOR, "CL_INVALID_IMAGE_DESCRIPTOR"}, |
| 648 | + {CL_INVALID_COMPILER_OPTIONS, "CL_INVALID_COMPILER_OPTIONS"}, |
| 649 | + {CL_INVALID_LINKER_OPTIONS, "CL_INVALID_LINKER_OPTIONS"}, |
| 650 | + {CL_INVALID_DEVICE_PARTITION_COUNT, "CL_INVALID_DEVICE_PARTITION_COUNT"}, |
| 651 | + {CL_INVALID_PIPE_SIZE, "CL_INVALID_PIPE_SIZE"}, |
| 652 | + {CL_INVALID_DEVICE_QUEUE, "CL_INVALID_DEVICE_QUEUE"}, |
| 653 | + {CL_INVALID_SPEC_ID, "CL_INVALID_SPEC_ID"}, |
| 654 | + {CL_MAX_SIZE_RESTRICTION_EXCEEDED, "CL_MAX_SIZE_RESTRICTION_EXCEEDED"}}; |
| 655 | + auto entry = error_map.find(errorcode); |
| 656 | + return (entry != error_map.end()) ? entry->second : "Unknown Errorcode"; |
685 | 657 | } |
0 commit comments