VkDebugUtilsMessengerCallbackDataEXT
The definition of VkDebugUtilsMessengerCallbackDataEXT
is:
typedef struct VkDebugUtilsMessengerCallbackDataEXT {
VkStructureType sType;
const void* pNext;
VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
const char* pMessageIdName;
int32_t messageIdNumber;
const char* pMessage;
uint32_t queueLabelCount;
const VkDebugUtilsLabelEXT* pQueueLabels;
uint32_t cmdBufLabelCount;
const VkDebugUtilsLabelEXT* pCmdBufLabels;
uint32_t objectCount;
const VkDebugUtilsObjectNameInfoEXT* pObjects;
} VkDebugUtilsMessengerCallbackDataEXT;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.flags
is0
and is reserved for future use.pMessageIdName
isNULL
or a null-terminated UTF-8 string that identifies the particular message ID that is associated with the provided message. If the message corresponds to a validation layer message, then this string may contain the portion of the Vulkan specification that is believed to have been violated.messageIdNumber
is the ID number of the triggering message. If the message corresponds to a validation layer message, then this number is related to the internal number associated with the message being triggered.pMessage
isNULL
ifmessageTypes
is equal toVK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT
, or a null-terminated UTF-8 string detailing the trigger conditions.queueLabelCount
is a count of items contained in thepQueueLabels
array.pQueueLabels
isNULL
or a pointer to an array of VkDebugUtilsLabelEXT active in the currentVkQueue
at the time the callback was triggered. Refer to Queue Labels for more information.cmdBufLabelCount
is a count of items contained in thepCmdBufLabels
array.pCmdBufLabels
isNULL
or a pointer to an array of VkDebugUtilsLabelEXT active in the currentVkCommandBuffer
at the time the callback was triggered. Refer to Command Buffer Labels for more information.objectCount
is a count of items contained in thepObjects
array.pObjects
is a pointer to an array of VkDebugUtilsObjectNameInfoEXT objects related to the detected issue. The array is roughly in order or importance, but the 0th element is always guaranteed to be the most important object for this message.
This structure should only be considered valid during the lifetime of the triggered callback.
Since adding queue and command buffer labels behaves like pushing and
popping onto a stack, the order of both pQueueLabels
and
pCmdBufLabels
is based on the order the labels were defined.
The result is that the first label in either pQueueLabels
or
pCmdBufLabels
will be the first defined (and therefore the oldest)
while the last label in each list will be the most recent.
pQueueLabels
will only be non-NULL
if one of the objects in
pObjects
can be related directly to a defined VkQueue
which has
had one or more labels associated with it.
Likewise, pCmdBufLabels
will only be non-NULL
if one of the objects
in pObjects
can be related directly to a defined VkCommandBuffer
which has had one or more labels associated with it.
Additionally, while command buffer labels allow for beginning and ending
across different command buffers, the debug messaging framework cannot
guarantee that labels in pCmdBufLables
will contain those defined
outside of the associated command buffer.
This is partially due to the fact that the association of one command buffer
with another may not have been defined at the time the debug message is
triggered.
Valid Usage (Implicit)
VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-sType
sType
must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNext
pNext
must be NULL
or a pointer to a valid instance of VkDeviceAddressBindingCallbackDataEXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-unique
The sType
value of each struct in the pNext
chain must be unique
VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmask
flags
must be 0
VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessageIdName-parameter
If pMessageIdName
is not NULL
, pMessageIdName
must be a null-terminated UTF-8 string
VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessage-parameter
If pMessage
is not NULL
, pMessage
must be a null-terminated UTF-8 string
VUID-VkDebugUtilsMessengerCallbackDataEXT-pQueueLabels-parameter
If queueLabelCount
is not 0
, pQueueLabels
must be a valid pointer to an array of queueLabelCount
valid VkDebugUtilsLabelEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-pCmdBufLabels-parameter
If cmdBufLabelCount
is not 0
, pCmdBufLabels
must be a valid pointer to an array of cmdBufLabelCount
valid VkDebugUtilsLabelEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-pObjects-parameter
If objectCount
is not 0
, pObjects
must be a valid pointer to an array of objectCount
valid VkDebugUtilsObjectNameInfoEXT structures