VkDebugUtilsMessengerCreateInfoEXT
The definition of VkDebugUtilsMessengerCreateInfoEXT is:
typedef struct VkDebugUtilsMessengerCreateInfoEXT {
VkStructureType sType;
const void* pNext;
VkDebugUtilsMessengerCreateFlagsEXT flags;
VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
VkDebugUtilsMessageTypeFlagsEXT messageType;
PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
void* pUserData;
} VkDebugUtilsMessengerCreateInfoEXT;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.flagsis0and is reserved for future use.messageSeverityis a bitmask of VkDebugUtilsMessageSeverityFlagBitsEXT specifying which severity of event(s) will cause this callback to be called.messageTypeis a bitmask of VkDebugUtilsMessageTypeFlagBitsEXT specifying which type of event(s) will cause this callback to be called.pfnUserCallbackis the application callback function to call.pUserDatais user data to be passed to the callback.
For each VkDebugUtilsMessengerEXT that is created the
VkDebugUtilsMessengerCreateInfoEXT::messageSeverity and
VkDebugUtilsMessengerCreateInfoEXT::messageType determine when
that VkDebugUtilsMessengerCreateInfoEXT::pfnUserCallback is
called.
The process to determine if the user’s pfnUserCallback is triggered
when an event occurs is as follows:
- The implementation will perform a bitwise AND of the event’s
VkDebugUtilsMessageSeverityFlagBitsEXT with the
messageSeverityprovided during creation of the VkDebugUtilsMessengerEXT object.- If the value is 0, the message is skipped.
- The implementation will perform bitwise AND of the event’s
VkDebugUtilsMessageTypeFlagBitsEXT with the
messageTypeprovided during the creation of the VkDebugUtilsMessengerEXT object.- If the value is 0, the message is skipped.
- The callback will trigger a debug message for the current event
The callback will come directly from the component that detected the event, unless some other layer intercepts the calls for its own purposes (filter them in a different way, log to a system error log, etc.).
An application can receive multiple callbacks if multiple
VkDebugUtilsMessengerEXT objects are created.
A callback will always be executed in the same thread as the originating
Vulkan call.
A callback can be called from multiple threads simultaneously (if the application is making Vulkan calls from multiple threads).
Valid Usage (Implicit)
VUID-VkDebugUtilsMessengerCreateInfoEXT-sType-sType
sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
VUID-VkDebugUtilsMessengerCreateInfoEXT-flags-zerobitmask
flags must be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-parameter
messageSeverity must be a valid combination of VkDebugUtilsMessageSeverityFlagBitsEXT values
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-requiredbitmask
messageSeverity must not be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameter
messageType must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmask
messageType must not be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameter
pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT value