C Specification

To inject its own messages into the debug stream, call:

// Provided by VK_EXT_debug_report
void vkDebugReportMessageEXT(
    VkInstance                                  instance,
    VkDebugReportFlagsEXT                       flags,
    VkDebugReportObjectTypeEXT                  objectType,
    uint64_t                                    object,
    size_t                                      location,
    int32_t                                     messageCode,
    const char*                                 pLayerPrefix,
    const char*                                 pMessage);


  • instance is the debug stream’s VkInstance.

  • flags specifies the VkDebugReportFlagBitsEXT classification of this event/message.

  • objectType is a VkDebugReportObjectTypeEXT specifying the type of object being used or created at the time the event was triggered.

  • object is the object where the issue was detected. object can be VK_NULL_HANDLE if there is no object associated with the event.

  • location is an application defined value.

  • messageCode is an application defined value.

  • pLayerPrefix is the abbreviation of the component making this event/message.

  • pMessage is a null-terminated UTF-8 string detailing the trigger conditions.


The call will propagate through the layers and generate callback(s) as indicated by the message’s flags. The parameters are passed on to the callback in addition to the pUserData value that was defined at the time the callback was registered.

Valid Usage
Valid Usage (Implicit)
  • VUID-vkDebugReportMessageEXT-instance-parameter
    instance must be a valid VkInstance handle

  • VUID-vkDebugReportMessageEXT-flags-parameter
    flags must be a valid combination of VkDebugReportFlagBitsEXT values

  • VUID-vkDebugReportMessageEXT-flags-requiredbitmask
    flags must not be 0

  • VUID-vkDebugReportMessageEXT-objectType-parameter
    objectType must be a valid VkDebugReportObjectTypeEXT value

  • VUID-vkDebugReportMessageEXT-pLayerPrefix-parameter
    pLayerPrefix must be a null-terminated UTF-8 string

  • VUID-vkDebugReportMessageEXT-pMessage-parameter
    pMessage must be a null-terminated UTF-8 string

See Also

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 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0