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 application-defined user data pointer, equal to the value of VkDebugReportCallbackCreateInfoEXT::pUserData specified when the VkDebugReportCallbackEXT object 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 debug-report-object-types.