8#include <vulkan/vulkan.h>
9#include <vulkan/vk_enum_string_helper.h>
27 "VK_LAYER_KHRONOS_validation"
30static VKAPI_ATTR VkBool32 VKAPI_CALL debugCallback
32 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
33 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
34 const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData,
55 std::cerr <<
"validation layer: " << pCallbackData->pMessage << std::endl;
59 if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT)
61 std::cerr <<
"validation layer: " << pCallbackData->pMessage << std::endl;
62 #ifdef EXCEPT_ON_VALIDATION
63 throw std::runtime_error(
"Vulkan validation warning or error encountered");
72[[maybe_unused]]
static void populateDebugMessengerCreateInfo(VkDebugUtilsMessengerCreateInfoEXT & createInfo) {
74 createInfo.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
75 createInfo.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT;
76 createInfo.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT;
77 createInfo.pfnUserCallback = debugCallback;
78 createInfo.pUserData =
nullptr;
79 createInfo.pNext =
nullptr;
83void vkError(VkResult result, std::string context =
"unspecified");
const std::vector< const char * > validationLayers
Definition vkDebug.h:25
const bool verboseValidationLayers
Definition vkDebug.h:22
void vkError(VkResult result, std::string context="unspecified")
Definition debug.cpp:3
const bool enableValidationLayers
Definition vkDebug.h:16