anv: avoid segmentation fault due to vk_error()

vk_error() is a macro that calls __vk_errorf() with instance == NULL.

Then, __vk_errorf() passes a pointer to instance->debug_report_callbacks
to vk_debug_error(), which segfaults as this pointer is invalid but not
NULL.

Fixes: e5b1bd6ab8 "vulkan: move anv VK_EXT_debug_report implementation to common code."

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
Samuel Iglesias Gonsálvez
2018-01-19 08:45:10 +01:00
parent 32170d87e3
commit 7109a1fe13

View File

@@ -99,6 +99,7 @@ __vk_errorf(struct anv_instance *instance, const void *object,
snprintf(report, sizeof(report), "%s:%d: %s", file, line, error_str);
}
if (instance) {
vk_debug_report(&instance->debug_report_callbacks,
VK_DEBUG_REPORT_ERROR_BIT_EXT,
type,
@@ -107,6 +108,7 @@ __vk_errorf(struct anv_instance *instance, const void *object,
0,
"anv",
report);
}
intel_loge("%s", report);