Function Pointer

PFN_vkDebugReportCallbackEXT

Application-defined debug report callback function

The prototype for the VkDebugReportCallbackCreateInfoEXT::pfnCallback function implemented by the application is:

typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
    VkDebugReportFlagsEXT                       flags,
    VkDebugReportObjectTypeEXT                  objectType,
    uint64_t                                    object,
    size_t                                      location,
    int32_t                                     messageCode,
    const char*                                 pLayerPrefix,
    const char*                                 pMessage,
    void*                                       pUserData);
  • flags specifies the VkDebugReportFlagBitsEXT that triggered this callback.
  • objectType is a VkDebugReportObjectTypeEXT value 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. If objectType is VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, object is undefined:.
  • location is a component (layer, driver, loader) defined value specifying the location of the trigger. This is an optional value.
  • messageCode is a layer-defined value indicating what test triggered this callback.
  • pLayerPrefix is a null-terminated UTF-8 string that is an abbreviation of the name of the component making the callback. pLayerPrefix is only valid for the duration of the callback.
  • pMessage is a null-terminated UTF-8 string detailing the trigger conditions. pMessage is only valid for the duration of the callback.
  • pUserData is the user data given when the VkDebugReportCallbackEXT was created.

The callback must not call vkDestroyDebugReportCallbackEXT.

The callback returns a VkBool32, which is interpreted in a layer-specified manner. The application should always return VK_FALSE. The VK_TRUE value is reserved for use in layer development.

object must be a Vulkan object or VK_NULL_HANDLE. If objectType is not VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and object is not VK_NULL_HANDLE, object must be a Vulkan object of the corresponding type associated with objectType as defined in Table 1. VkDebugReportObjectTypeEXT and Vulkan Handle Relationship.