VkDebugUtilsMessengerCreateInfoEXT(3)

# VkDebugUtilsMessengerCreateInfoEXT(3) Manual Page

## Name

VkDebugUtilsMessengerCreateInfoEXT - Structure specifying parameters of a newly created debug messenger

Loading… please wait.

## 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` is `NULL` or a pointer to a structure extending this structure.

- `flags` is `0` 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:

1. The implementation will perform a bitwise AND of the event’s VkDebugUtilsMessageSeverityFlagBitsEXT with the `messageSeverity` provided during creation of the VkDebugUtilsMessengerEXT object.

   1. If the value is 0, the message is skipped.

2. The implementation will perform bitwise AND of the event’s VkDebugUtilsMessageTypeFlagBitsEXT with the `messageType` provided during the creation of the VkDebugUtilsMessengerEXT object.

   1. If the value is 0, the message is skipped.

3. 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

- VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-01914
  `pfnUserCallback` must be a valid PFN_vkDebugUtilsMessengerCallbackEXT

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

## See Also

PFN_vkDebugUtilsMessengerCallbackEXT, VK_EXT_debug_utils, VkDebugUtilsMessageSeverityFlagsEXT, VkDebugUtilsMessageTypeFlagsEXT, VkDebugUtilsMessengerCreateFlagsEXT, VkStructureType, vkCreateDebugUtilsMessengerEXT

## 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.

## Copyright

Copyright 2014-2022 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0