diff --git a/en/03_Drawing_a_triangle/00_Setup/02_Validation_layers.adoc b/en/03_Drawing_a_triangle/00_Setup/02_Validation_layers.adoc index cd1e8dde..458501f7 100644 --- a/en/03_Drawing_a_triangle/00_Setup/02_Validation_layers.adoc +++ b/en/03_Drawing_a_triangle/00_Setup/02_Validation_layers.adoc @@ -285,11 +285,31 @@ some level of severity, for example: [,c++] ---- -if (messageSeverity >= vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning) { +if (severity >= vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning) { // Message is important enough to show } ---- +Applying that to our `debugCallback`, we can filter out anything less severe +than a warning so that verbose and informational messages don't clutter the +output: + +[,c++] +---- +static VKAPI_ATTR vk::Bool32 VKAPI_CALL debugCallback(vk::DebugUtilsMessageSeverityFlagBitsEXT severity, + vk::DebugUtilsMessageTypeFlagsEXT type, + const vk::DebugUtilsMessengerCallbackDataEXT * pCallbackData, + void * pUserData) +{ + if (severity == vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning || + severity == vk::DebugUtilsMessageSeverityFlagBitsEXT::eError) { + std::cerr << "validation layer: type " << to_string(type) << " msg: " << pCallbackData->pMessage << std::endl; + } + + return vk::False; +} +---- + The `messageType` parameter can have the following values: * `vk::DebugUtilsMessageTypeFlagBitsEXT::eGeneral` : Some event has happened that is unrelated to the specification or performance