Skip to content

Commit 9d8ab81

Browse files
committed
vulkan_context: debug_callback compat
compat with old Vulkan as in Debian 11 (still used for ARM builds)
1 parent e2f0ddc commit 9d8ab81

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/video_display/vulkan/vulkan_context.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ using namespace vulkan_display;
4444

4545
namespace {
4646

47+
#if VK_HEADER_VERSION > 169
4748
VKAPI_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

6891
void check_validation_layers(const std::vector<const char*>& required_layers) {
6992
std::vector<vk::LayerProperties> layers = vk::enumerateInstanceLayerProperties();

0 commit comments

Comments
 (0)