C Specification
The definition of VkDeviceAddressBindingCallbackDataEXT is:
// Provided by VK_EXT_device_address_binding_report
typedef struct VkDeviceAddressBindingCallbackDataEXT {
VkStructureType sType;
void* pNext;
VkDeviceAddressBindingFlagsEXT flags;
VkDeviceAddress baseAddress;
VkDeviceSize size;
VkDeviceAddressBindingTypeEXT bindingType;
} VkDeviceAddressBindingCallbackDataEXT;
Members
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
flagsis a bitmask of VkDeviceAddressBindingFlagBitsEXT specifying additional information about the binding event that caused the callback to be called. -
baseAddressis a GPU-accessible virtual address identifying the start of a region of the virtual address space associated with a Vulkan object, as identified by thepObjectsmember of VkDebugUtilsMessengerCallbackDataEXT. -
sizeis the size in bytes of a region of GPU-accessible virtual address space. -
bindingTypeis a VkDeviceAddressBindingTypeEXT specifying the type of binding event that caused the callback to be called.
Description
If the reportAddressBinding feature
is enabled and the implementation binds or unbinds a region of virtual
address space associated with a Vulkan object, the implementation must
submit a debug message with the following properties:
-
messageSeverityequal toVK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT -
messageTypesequal toVK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT -
VkDebugUtilsMessengerCallbackDataEXT::pObjectsmust identify the associated Vulkan object -
VkDeviceAddressBindingCallbackDataEXTmust be included in thepNextchain ofVkDebugUtilsMessengerCallbackDataEXT
These debug messages must be emitted both for GPU virtual address space
regions that are explicitly bound to a Vulkan object via the
vkBind*Memory/vkBind*Memory2 functions, and for those that are
implicitly generated via memory allocation or importing external memory.
An implementation may report binding events associated with a Vulkan object
via VkDebugUtilsMessengerEXT prior to the object becoming visible to
an application via other Vulkan commands.
For example, object creation functions may report binding events that occur
during an objects creation.
In such cases, VkDeviceAddressBindingCallbackDataEXT::flags
must include VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT.
Object handles reported in this manner are not valid object handles, and must not be used as an input parameter to any Vulkan command.
Any valid object handle returned by an object creation function must match the handle specified via any previously reported binding events associated with the object’s creation.
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.