VkMemoryOpaqueCaptureAddressAllocateInfo(3)

# VkMemoryOpaqueCaptureAddressAllocateInfo(3) Manual Page

## Name

VkMemoryOpaqueCaptureAddressAllocateInfo - Request a specific address for a memory allocation

## C Specification

To request a specific device address for a memory allocation, add a VkMemoryOpaqueCaptureAddressAllocateInfo structure to the `pNext` chain of the VkMemoryAllocateInfo structure. The `VkMemoryOpaqueCaptureAddressAllocateInfo` structure is defined as:

    // Provided by VK_VERSION_1_2
    typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
        VkStructureType    sType;
        const void*        pNext;
        uint64_t           opaqueCaptureAddress;
    } VkMemoryOpaqueCaptureAddressAllocateInfo;

    // Provided by VK_KHR_buffer_device_address
    // Equivalent to VkMemoryOpaqueCaptureAddressAllocateInfo
    typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;

## Members

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `opaqueCaptureAddress` is the opaque capture address requested for the memory allocation.

## Description

If `opaqueCaptureAddress` is zero, no specific address is requested.

If `opaqueCaptureAddress` is not zero, it should be an address retrieved from vkGetDeviceMemoryOpaqueCaptureAddress on an identically created memory allocation on the same implementation.

Note | In most cases, it is expected that a non-zero `opaqueAddress` is an address retrieved from vkGetDeviceMemoryOpaqueCaptureAddress on an identically created memory allocation. If this is not the case, it is likely that VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS errors will occur. This is, however, not a strict requirement because trace capture/replay tools may need to adjust memory allocation parameters for imported memory.

If this structure is not present, it is as if `opaqueCaptureAddress` is zero.

Valid Usage (Implicit)

- VUID-VkMemoryOpaqueCaptureAddressAllocateInfo-sType-sType
  `sType` must be VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO

Structure Chaining

Extends the structure

  - VkMemoryAllocateInfo

## See Also

VK_KHR_buffer_device_address, VK_VERSION_1_2, 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-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0