VkDeviceAddressBindingCallbackDataEXT(3)

# VkDeviceAddressBindingCallbackDataEXT(3) Manual Page

## Name

VkDeviceAddressBindingCallbackDataEXT - Structure specifying parameters returned to the callback

Loading… please wait.

## 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

- `sType` is the type of this structure.

- `pNext` is `NULL` 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 the `pObjects` 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.

## 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:

- `messageSeverity` equal to `VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT`

- `messageType` equal to `VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT`

- `VkDebugUtilsMessengerCallbackDataEXT`::`pObjects` must identify the associated Vulkan object

- `VkDeviceAddressBindingCallbackDataEXT` must be included in the `pNext` chain of `VkDebugUtilsMessengerCallbackDataEXT`

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

## See Also

VK_EXT_device_address_binding_report, `VkDeviceAddress`, VkDeviceAddressBindingFlagsEXT, VkDeviceAddressBindingTypeEXT, `VkDeviceSize`, VkStructureType

## 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

Copyright 2014-2022 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0