# VkPhysicalDeviceExternalBufferInfo(3) Manual Page

## Name

VkPhysicalDeviceExternalBufferInfo - Structure specifying buffer creation parameters

Loading… please wait.

## C Specification

The `VkPhysicalDeviceExternalBufferInfo` structure is defined as:

    // Provided by VK_VERSION_1_1
    typedef struct VkPhysicalDeviceExternalBufferInfo {
        VkStructureType                       sType;
        const void*                           pNext;
        VkBufferCreateFlags                   flags;
        VkBufferUsageFlags                    usage;
        VkExternalMemoryHandleTypeFlagBits    handleType;
    } VkPhysicalDeviceExternalBufferInfo;

or the equivalent

    // Provided by VK_KHR_external_memory_capabilities
    typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;

## Members

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

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

- `flags` is a bitmask of VkBufferCreateFlagBits describing additional parameters of the buffer, corresponding to VkBufferCreateInfo::`flags`.

- `usage` is a bitmask of VkBufferUsageFlagBits describing the intended usage of the buffer, corresponding to VkBufferCreateInfo::`usage`.

- `handleType` is a VkExternalMemoryHandleTypeFlagBits value specifying the memory handle type that will be used with the memory associated with the buffer.

## Description

Only usage flags representable in VkBufferUsageFlagBits are returned in this structure’s `usage`. If the `pNext` chain includes a VkBufferUsageFlags2CreateInfo structure, all usage flags of the buffer are returned in VkBufferUsageFlags2CreateInfo::`usage`.

Valid Usage

- VUID-VkPhysicalDeviceExternalBufferInfo-None-09499
  If the `pNext` chain does not include a VkBufferUsageFlags2CreateInfo structure, `usage` must be a valid combination of VkBufferUsageFlagBits values

- VUID-VkPhysicalDeviceExternalBufferInfo-None-09500
  If the `pNext` chain does not include a VkBufferUsageFlags2CreateInfo structure, `usage` must not be 0

Valid Usage (Implicit)

- VUID-VkPhysicalDeviceExternalBufferInfo-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO`

- VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNext
  `pNext` must be `NULL` or a pointer to a valid instance of VkBufferUsageFlags2CreateInfo

- VUID-VkPhysicalDeviceExternalBufferInfo-sType-unique
  The `sType` value of each struct in the `pNext` chain must be unique

- VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameter
  `flags` must be a valid combination of VkBufferCreateFlagBits values

- VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameter
  `handleType` must be a valid VkExternalMemoryHandleTypeFlagBits value

## See Also

VK_VERSION_1_1, VkBufferCreateFlags, VkBufferUsageFlags, VkExternalMemoryHandleTypeFlagBits, VkStructureType, vkGetPhysicalDeviceExternalBufferProperties, vkGetPhysicalDeviceExternalBufferPropertiesKHR

## 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-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0