@@ -44,6 +44,7 @@ using namespace vulkan_display;
4444
4545namespace {
4646
47+ #if VK_HEADER_VERSION > 169
4748VKAPI_ATTR VkBool32 VKAPI_CALL debug_callback (
4849 [[maybe_unused]] vk::DebugUtilsMessageSeverityFlagBitsEXT message_severity,
4950 [[maybe_unused]] vk::DebugUtilsMessageTypeFlagsEXT message_type,
@@ -64,6 +65,28 @@ VKAPI_ATTR VkBool32 VKAPI_CALL debug_callback(
6465
6566 return VK_FALSE;
6667}
68+ #else // / compat (eg. Debian 11) @todo TOREMOVE later
69+ VKAPI_ATTR VkBool32 VKAPI_CALL debug_callback (
70+ [[maybe_unused]] VkDebugUtilsMessageSeverityFlagBitsEXT message_severity,
71+ [[maybe_unused]] VkDebugUtilsMessageTypeFlagsEXT message_type,
72+ const VkDebugUtilsMessengerCallbackDataEXT* callback_data,
73+ [[maybe_unused]] void * user_data)
74+ {
75+ LogLevel level = LogLevel::notice;
76+ if (VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT & message_severity) level = LogLevel::error;
77+ else if (VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT & message_severity) level = LogLevel::warning;
78+ else if (VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT & message_severity) level = LogLevel::info;
79+ else if (VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT & message_severity) level = LogLevel::verbose;
80+
81+ vulkan_log_msg (level, " validation layer: " s + callback_data->pMessage );
82+
83+ if (message_type != VkDebugUtilsMessageTypeFlagBitsEXT::VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT){
84+ // assert(false);
85+ }
86+
87+ return VK_FALSE;
88+ }
89+ #endif
6790
6891void check_validation_layers (const std::vector<const char *>& required_layers) {
6992 std::vector<vk::LayerProperties> layers = vk::enumerateInstanceLayerProperties ();
0 commit comments