C Specification
The definition of VkDebugUtilsMessengerCreateInfoEXT
is:
// Provided by VK_EXT_debug_utils
typedef struct VkDebugUtilsMessengerCreateInfoEXT {
VkStructureType sType;
const void* pNext;
VkDebugUtilsMessengerCreateFlagsEXT flags;
VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
VkDebugUtilsMessageTypeFlagsEXT messageType;
PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
void* pUserData;
} VkDebugUtilsMessengerCreateInfoEXT;
Members
-
sType
is the type of this structure. -
pNext
isNULL
or a pointer to a structure extending this structure. -
flags
is0
and is reserved for future use. -
messageSeverity
is a bitmask of VkDebugUtilsMessageSeverityFlagBitsEXT specifying which severity of event(s) will cause this callback to be called. -
messageType
is a bitmask of VkDebugUtilsMessageTypeFlagBitsEXT specifying which type of event(s) will cause this callback to be called. -
pfnUserCallback
is the application callback function to call. -
pUserData
is user data to be passed to the callback.
Description
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
messageSeverity
provided 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
messageType
provided 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).
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.