VkDeviceAddressBindingCallbackDataEXT
The definition of VkDeviceAddressBindingCallbackDataEXT
is:
typedef struct VkDeviceAddressBindingCallbackDataEXT {
VkStructureType sType;
void* pNext;
VkDeviceAddressBindingFlagsEXT flags;
VkDeviceAddress baseAddress;
VkDeviceSize size;
VkDeviceAddressBindingTypeEXT bindingType;
} VkDeviceAddressBindingCallbackDataEXT;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.flags
is a bitmask of VkDeviceAddressBindingFlagBitsEXT specifying additional information about the binding event that caused the callback to be called.baseAddress
is a GPU-accessible virtual address identifying the start of a region of the virtual address space associated with a Vulkan object, as identified by thepObjects
member of VkDebugUtilsMessengerCallbackDataEXT.size
is the size in bytes of a region of GPU-accessible virtual address space.bindingType
is a VkDeviceAddressBindingTypeEXT specifying the type of binding event that caused the callback to be called.
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:
messageSeverity
equal toVK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT
messageTypes
equal toVK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT
VkDebugUtilsMessengerCallbackDataEXT
::pObjects
must identify the associated Vulkan objectVkDeviceAddressBindingCallbackDataEXT
must be included in thepNext
chain 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.
Valid Usage (Implicit)
VUID-VkDeviceAddressBindingCallbackDataEXT-sType-sType
sType
must be VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT
VUID-VkDeviceAddressBindingCallbackDataEXT-flags-parameter
flags
must be a valid combination of VkDeviceAddressBindingFlagBitsEXT values
VUID-VkDeviceAddressBindingCallbackDataEXT-bindingType-parameter
bindingType
must be a valid VkDeviceAddressBindingTypeEXT value