Function Prototype

vkDestroyDebugUtilsMessengerEXT

Destroy a debug messenger object

To destroy a VkDebugUtilsMessengerEXT object, call:

void vkDestroyDebugUtilsMessengerEXT(
    VkInstance instance,
    VkDebugUtilsMessengerEXT messenger,
    const VkAllocationCallbacks* pAllocator);
  • instance is the instance where the callback was created.
  • messenger is the VkDebugUtilsMessengerEXT object to destroy. messenger is an externally synchronized object and must not be used on more than one thread at a time. This means that vkDestroyDebugUtilsMessengerEXT must not be called when a callback is active.
  • pAllocator controls host memory allocation as described in the Memory Allocation chapter.

Valid Usage

VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01915

If VkAllocationCallbacks were provided when messenger was created, a compatible set of callbacks must be provided here

VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01916

If no VkAllocationCallbacks were provided when messenger was created, pAllocator must be NULL

Valid Usage (Implicit)

VUID-vkDestroyDebugUtilsMessengerEXT-pAllocator-parameter

If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure

VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parent

If messenger is a valid handle, it must have been created, allocated, or retrieved from instance

Host Synchronization

  • Host access to messenger must be externally synchronized ::

The application must ensure that vkDestroyDebugUtilsMessengerEXT is not executed in parallel with any Vulkan command that is also called with instance or child of instance as the dispatchable argument.