diff options
author | Jason Ekstrand <[email protected]> | 2015-09-08 12:13:07 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2015-09-08 12:13:07 -0700 |
commit | 8040dc4ca5e05a24c30ad3a428498cf82ded6bf6 (patch) | |
tree | 0cd3306ada83186d37dd714ae34a69bcc51e4cf3 /src/vulkan/anv_util.c | |
parent | 060720f0c9fc5333ba481315e63ba697c868f44c (diff) |
vk/error: Handle ERROR_OUT_OF_DATE_WSI
Diffstat (limited to 'src/vulkan/anv_util.c')
-rw-r--r-- | src/vulkan/anv_util.c | 84 |
1 files changed, 45 insertions, 39 deletions
diff --git a/src/vulkan/anv_util.c b/src/vulkan/anv_util.c index 94f14f98f8f..4c8fadcc805 100644 --- a/src/vulkan/anv_util.c +++ b/src/vulkan/anv_util.c @@ -88,52 +88,58 @@ __vk_errorf(VkResult error, const char *file, int line, const char *format, ...) va_list ap; char buffer[256]; - static const char *error_names[] = { - "VK_ERROR_UNKNOWN", - "VK_ERROR_UNAVAILABLE", - "VK_ERROR_INITIALIZATION_FAILED", - "VK_ERROR_OUT_OF_HOST_MEMORY", - "VK_ERROR_OUT_OF_DEVICE_MEMORY", - "VK_ERROR_DEVICE_ALREADY_CREATED", - "VK_ERROR_DEVICE_LOST", - "VK_ERROR_INVALID_POINTER", - "VK_ERROR_INVALID_VALUE", - "VK_ERROR_INVALID_HANDLE", - "VK_ERROR_INVALID_ORDINAL", - "VK_ERROR_INVALID_MEMORY_SIZE", - "VK_ERROR_INVALID_EXTENSION", - "VK_ERROR_INVALID_FLAGS", - "VK_ERROR_INVALID_ALIGNMENT", - "VK_ERROR_INVALID_FORMAT", - "VK_ERROR_INVALID_IMAGE", - "VK_ERROR_INVALID_DESCRIPTOR_SET_DATA", - "VK_ERROR_INVALID_QUEUE_TYPE", - "VK_ERROR_UNSUPPORTED_SHADER_IL_VERSION", - "VK_ERROR_BAD_SHADER_CODE", - "VK_ERROR_BAD_PIPELINE_DATA", - "VK_ERROR_NOT_MAPPABLE", - "VK_ERROR_MEMORY_MAP_FAILED", - "VK_ERROR_MEMORY_UNMAP_FAILED", - "VK_ERROR_INCOMPATIBLE_DEVICE", - "VK_ERROR_INCOMPATIBLE_DRIVER", - "VK_ERROR_INCOMPLETE_COMMAND_BUFFER", - "VK_ERROR_BUILDING_COMMAND_BUFFER", - "VK_ERROR_MEMORY_NOT_BOUND", - "VK_ERROR_INCOMPATIBLE_QUEUE", - "VK_ERROR_INVALID_LAYER", - }; - - assert(error <= VK_ERROR_UNKNOWN && error >= VK_ERROR_INVALID_LAYER); +#define ERROR_CASE(error) case error: error_str = #error; break; + + const char *error_str; + switch ((int32_t)error) { + ERROR_CASE(VK_ERROR_UNKNOWN) + ERROR_CASE(VK_ERROR_UNAVAILABLE) + ERROR_CASE(VK_ERROR_INITIALIZATION_FAILED) + ERROR_CASE(VK_ERROR_OUT_OF_HOST_MEMORY) + ERROR_CASE(VK_ERROR_OUT_OF_DEVICE_MEMORY) + ERROR_CASE(VK_ERROR_DEVICE_ALREADY_CREATED) + ERROR_CASE(VK_ERROR_DEVICE_LOST) + ERROR_CASE(VK_ERROR_INVALID_POINTER) + ERROR_CASE(VK_ERROR_INVALID_VALUE) + ERROR_CASE(VK_ERROR_INVALID_HANDLE) + ERROR_CASE(VK_ERROR_INVALID_ORDINAL) + ERROR_CASE(VK_ERROR_INVALID_MEMORY_SIZE) + ERROR_CASE(VK_ERROR_INVALID_EXTENSION) + ERROR_CASE(VK_ERROR_INVALID_FLAGS) + ERROR_CASE(VK_ERROR_INVALID_ALIGNMENT) + ERROR_CASE(VK_ERROR_INVALID_FORMAT) + ERROR_CASE(VK_ERROR_INVALID_IMAGE) + ERROR_CASE(VK_ERROR_INVALID_DESCRIPTOR_SET_DATA) + ERROR_CASE(VK_ERROR_INVALID_QUEUE_TYPE) + ERROR_CASE(VK_ERROR_UNSUPPORTED_SHADER_IL_VERSION) + ERROR_CASE(VK_ERROR_BAD_SHADER_CODE) + ERROR_CASE(VK_ERROR_BAD_PIPELINE_DATA) + ERROR_CASE(VK_ERROR_NOT_MAPPABLE) + ERROR_CASE(VK_ERROR_MEMORY_MAP_FAILED) + ERROR_CASE(VK_ERROR_MEMORY_UNMAP_FAILED) + ERROR_CASE(VK_ERROR_INCOMPATIBLE_DEVICE) + ERROR_CASE(VK_ERROR_INCOMPATIBLE_DRIVER) + ERROR_CASE(VK_ERROR_INCOMPLETE_COMMAND_BUFFER) + ERROR_CASE(VK_ERROR_BUILDING_COMMAND_BUFFER) + ERROR_CASE(VK_ERROR_MEMORY_NOT_BOUND) + ERROR_CASE(VK_ERROR_INCOMPATIBLE_QUEUE) + ERROR_CASE(VK_ERROR_INVALID_LAYER) + ERROR_CASE(VK_ERROR_OUT_OF_DATE_WSI) + default: + assert(!"Unknown error"); + error_str = "unknown error"; + } + +#undef ERROR_CASE if (format) { va_start(ap, format); vsnprintf(buffer, sizeof(buffer), format, ap); va_end(ap); - fprintf(stderr, "%s:%d: %s (%s)\n", file, line, - buffer, error_names[-error - 1]); + fprintf(stderr, "%s:%d: %s (%s)\n", file, line, buffer, error_str); } else { - fprintf(stderr, "%s:%d: %s\n", file, line, error_names[-error - 1]); + fprintf(stderr, "%s:%d: %s\n", file, line, error_str); } return error; |