VkDescriptorGetInfoEXT(3)

# VkDescriptorGetInfoEXT(3) Manual Page

## Name

VkDescriptorGetInfoEXT - Structure specifying parameters of descriptor to get

Loading… please wait.

## C Specification

Information about the descriptor to get is passed in a `VkDescriptorGetInfoEXT` structure:

    // Provided by VK_EXT_descriptor_buffer
    typedef struct VkDescriptorGetInfoEXT {
        VkStructureType        sType;
        const void*            pNext;
        VkDescriptorType       type;
        VkDescriptorDataEXT    data;
    } VkDescriptorGetInfoEXT;

## Members

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

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

- `type` is the type of descriptor to get.

- `data` is a structure containing the information needed to get the descriptor.

## Description

Valid Usage

- VUID-VkDescriptorGetInfoEXT-type-08018
  `type` must not be `VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC`, `VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC` or `VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK`

- VUID-VkDescriptorGetInfoEXT-type-08019
  If `type` is `VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER`, the `pCombinedImageSampler->sampler` member of `data` must be a VkSampler created on `device`

- VUID-VkDescriptorGetInfoEXT-type-08020
  If `type` is `VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER`, the `pCombinedImageSampler->imageView` member of `data` must be a VkImageView created on `device`, or VK_NULL_HANDLE

- VUID-VkDescriptorGetInfoEXT-type-08021
  If `type` is `VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT`, the `pInputAttachmentImage->imageView` member of `data` must be a VkImageView created on `device`

- VUID-VkDescriptorGetInfoEXT-type-08022
  If `type` is `VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE`, and if `pSampledImage` is not `NULL`, the `pSampledImage->imageView` member of `data` must be a VkImageView created on `device`, or VK_NULL_HANDLE

- VUID-VkDescriptorGetInfoEXT-type-08023
  If `type` is `VK_DESCRIPTOR_TYPE_STORAGE_IMAGE`, and if `pStorageImage` is not `NULL`, the `pStorageImage->imageView` member of `data` must be a VkImageView created on `device`, or VK_NULL_HANDLE

- VUID-VkDescriptorGetInfoEXT-type-08024
  If `type` is `VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER`, `pUniformTexelBuffer` is not `NULL` and `pUniformTexelBuffer->address` is not zero, `pUniformTexelBuffer->address` must be an address within a VkBuffer created on `device`

- VUID-VkDescriptorGetInfoEXT-type-08025
  If `type` is `VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER`, `pStorageTexelBuffer` is not `NULL` and `pStorageTexelBuffer->address` is not zero, `pStorageTexelBuffer->address` must be an address within a VkBuffer created on `device`

- VUID-VkDescriptorGetInfoEXT-type-08026
  If `type` is `VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER`, `pUniformBuffer` is not `NULL` and `pUniformBuffer->address` is not zero, `pUniformBuffer->address` must be an address within a VkBuffer created on `device`

- VUID-VkDescriptorGetInfoEXT-type-08027
  If `type` is `VK_DESCRIPTOR_TYPE_STORAGE_BUFFER`, `pStorageBuffer` is not `NULL` and `pStorageBuffer->address` is not zero, `pStorageBuffer->address` must be an address within a VkBuffer created on `device`

- VUID-VkDescriptorGetInfoEXT-type-09427
  If `type` is `VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER`, `pUniformBuffer` is not `NULL` , the number of texel buffer elements given by (⌊`pUniformBuffer->range` / (texel block size)⌋ × (texels per block)) where texel block size and texels per block are as defined in the Compatible Formats table for `pUniformBuffer->format`, must be less than or equal to `VkPhysicalDeviceLimits`::`maxTexelBufferElements`

- VUID-VkDescriptorGetInfoEXT-type-09428
  If `type` is `VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER`, `pStorageBuffer` is not `NULL` , the number of texel buffer elements given by (⌊`pStorageBuffer->range` / (texel block size)⌋ × (texels per block)) where texel block size and texels per block are as defined in the Compatible Formats table for `pStorageBuffer->format`, must be less than or equal to `VkPhysicalDeviceLimits`::`maxTexelBufferElements`

- VUID-VkDescriptorGetInfoEXT-type-08028
  If `type` is `VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR` and `accelerationStructure` is not `0`, `accelerationStructure` must contain the address of a VkAccelerationStructureKHR created on `device`

- VUID-VkDescriptorGetInfoEXT-type-08029
  If `type` is `VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV` and `accelerationStructure` is not `0`, `accelerationStructure` must contain the handle of a VkAccelerationStructureNV created on `device`, returned by vkGetAccelerationStructureHandleNV

Valid Usage (Implicit)

- VUID-VkDescriptorGetInfoEXT-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT`

- VUID-VkDescriptorGetInfoEXT-pNext-pNext
  `pNext` must be `NULL`

- VUID-VkDescriptorGetInfoEXT-type-parameter
  `type` must be a valid VkDescriptorType value

- VUID-VkDescriptorGetInfoEXT-pSampler-parameter
  If `type` is `VK_DESCRIPTOR_TYPE_SAMPLER`, the `pSampler` member of `data` must be a valid pointer to a valid VkSampler handle

- VUID-VkDescriptorGetInfoEXT-pCombinedImageSampler-parameter
  If `type` is `VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER`, the `pCombinedImageSampler` member of `data` must be a valid pointer to a valid VkDescriptorImageInfo structure

- VUID-VkDescriptorGetInfoEXT-pInputAttachmentImage-parameter
  If `type` is `VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT`, the `pInputAttachmentImage` member of `data` must be a valid pointer to a valid VkDescriptorImageInfo structure

- VUID-VkDescriptorGetInfoEXT-pSampledImage-parameter
  If `type` is `VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE`, and if `pSampledImage` is not `NULL`, the `pSampledImage` member of `data` must be a valid pointer to a valid VkDescriptorImageInfo structure

- VUID-VkDescriptorGetInfoEXT-pStorageImage-parameter
  If `type` is `VK_DESCRIPTOR_TYPE_STORAGE_IMAGE`, and if `pStorageImage` is not `NULL`, the `pStorageImage` member of `data` must be a valid pointer to a valid VkDescriptorImageInfo structure

- VUID-VkDescriptorGetInfoEXT-pUniformTexelBuffer-parameter
  If `type` is `VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER`, and if `pUniformTexelBuffer` is not `NULL`, the `pUniformTexelBuffer` member of `data` must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure

- VUID-VkDescriptorGetInfoEXT-pStorageTexelBuffer-parameter
  If `type` is `VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER`, and if `pStorageTexelBuffer` is not `NULL`, the `pStorageTexelBuffer` member of `data` must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure

- VUID-VkDescriptorGetInfoEXT-pUniformBuffer-parameter
  If `type` is `VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER`, and if `pUniformBuffer` is not `NULL`, the `pUniformBuffer` member of `data` must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure

- VUID-VkDescriptorGetInfoEXT-pStorageBuffer-parameter
  If `type` is `VK_DESCRIPTOR_TYPE_STORAGE_BUFFER`, and if `pStorageBuffer` is not `NULL`, the `pStorageBuffer` member of `data` must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure

## See Also

VK_EXT_descriptor_buffer, VkDescriptorDataEXT, VkDescriptorType, VkStructureType, vkGetDescriptorEXT

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

SPDX-License-Identifier: CC-BY-4.0