#include "anv_private.h"
#include "vk_enum_to_str.h"
-#include "util/debug.h"
/** Log an error message. */
void anv_printflike(1, 2)
{
va_list ap;
char buffer[256];
- char report[256];
+ char report[512];
va_start(ap, format);
vsnprintf(buffer, sizeof(buffer), format, ap);
snprintf(report, sizeof(report), "%s: %s", file, buffer);
- anv_debug_report(instance,
- VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
- type,
- (uint64_t) (uintptr_t) object,
- line,
- 0,
- "anv",
- report);
+ vk_debug_report(&instance->debug_report_callbacks,
+ VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
+ type,
+ (uint64_t) (uintptr_t) object,
+ line,
+ 0,
+ "anv",
+ report);
intel_logw("%s:%d: PERF: %s", file, line, buffer);
}
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[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);
snprintf(report, sizeof(report), "%s:%d: %s", file, line, error_str);
}
- anv_debug_report(instance,
- VK_DEBUG_REPORT_ERROR_BIT_EXT,
- type,
- (uint64_t) (uintptr_t) object,
- line,
- 0,
- "anv",
- report);
+ if (instance) {
+ vk_debug_report(&instance->debug_report_callbacks,
+ VK_DEBUG_REPORT_ERROR_BIT_EXT,
+ type,
+ (uint64_t) (uintptr_t) object,
+ line,
+ 0,
+ "anv",
+ report);
+ }
intel_loge("%s", report);
- if (error == VK_ERROR_DEVICE_LOST &&
- env_var_as_boolean("ANV_ABORT_ON_DEVICE_LOSS", false))
- abort();
+ 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;
}