diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/intel/vulkan/anv_private.h | 8 | ||||
-rw-r--r-- | src/intel/vulkan/anv_util.c | 23 |
2 files changed, 25 insertions, 6 deletions
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index a3ab971b6fd..c5d636fef8d 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -381,6 +381,11 @@ vk_to_isl_color(VkClearColorValue color) * propagating errors. Might be useful to plug in a stack trace here. */ +VkResult __vk_errorv(struct anv_instance *instance, const void *object, + VkDebugReportObjectTypeEXT type, VkResult error, + const char *file, int line, const char *format, + va_list args); + VkResult __vk_errorf(struct anv_instance *instance, const void *object, VkDebugReportObjectTypeEXT type, VkResult error, const char *file, int line, const char *format, ...); @@ -389,6 +394,9 @@ VkResult __vk_errorf(struct anv_instance *instance, const void *object, #define vk_error(error) __vk_errorf(NULL, NULL,\ VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,\ error, __FILE__, __LINE__, NULL) +#define vk_errorv(instance, obj, error, format, args)\ + __vk_errorv(instance, obj, REPORT_OBJECT_TYPE(obj), error,\ + __FILE__, __LINE__, format, args) #define vk_errorf(instance, obj, error, format, ...)\ __vk_errorf(instance, obj, REPORT_OBJECT_TYPE(obj), error,\ __FILE__, __LINE__, format, ## __VA_ARGS__) diff --git a/src/intel/vulkan/anv_util.c b/src/intel/vulkan/anv_util.c index 8ccb61b35c1..1159ccecc6a 100644 --- a/src/intel/vulkan/anv_util.c +++ b/src/intel/vulkan/anv_util.c @@ -77,20 +77,17 @@ __anv_perf_warn(struct anv_instance *instance, const void *object, } VkResult -__vk_errorf(struct anv_instance *instance, const void *object, - VkDebugReportObjectTypeEXT type, VkResult error, - const char *file, int line, const char *format, ...) +__vk_errorv(struct anv_instance *instance, const void *object, + VkDebugReportObjectTypeEXT type, VkResult error, + const char *file, int line, const char *format, va_list ap) { - va_list ap; char buffer[256]; char report[512]; const char *error_str = vk_Result_to_str(error); if (format) { - va_start(ap, format); vsnprintf(buffer, sizeof(buffer), format, ap); - va_end(ap); snprintf(report, sizeof(report), "%s:%d: %s (%s)", file, line, buffer, error_str); @@ -113,3 +110,17 @@ __vk_errorf(struct anv_instance *instance, const void *object, return error; } + +VkResult +__vk_errorf(struct anv_instance *instance, const void *object, + VkDebugReportObjectTypeEXT type, VkResult error, + const char *file, int line, const char *format, ...) +{ + va_list ap; + + va_start(ap, format); + __vk_errorv(instance, object, type, error, file, line, format, ap); + va_end(ap); + + return error; +} |