C Specification
VkResourceDescriptorInfoEXT is defined as:
// Provided by VK_EXT_descriptor_heap
typedef struct VkResourceDescriptorInfoEXT {
VkStructureType sType;
const void* pNext;
VkDescriptorType type;
VkResourceDescriptorDataEXT data;
} VkResourceDescriptorInfoEXT;
Members
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
typeis the type of descriptor to get. -
datais a VkResourceDescriptorDataEXT union defining the properties of a resource descriptor according totype
Description
If type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or
VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, data->pTexelBuffer is
used to construct the descriptor.
If type is
VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,
VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV,
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, or
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, data->pAddressRange is used
to construct the descriptor.
For acceleration structures, the size of the range is not used by the
descriptor, and can be set to 0.
If a non-zero size is provided though, it must be a valid range.
|
Note
|
Applications may wish to provide a valid range as a way to check their own assumptions about the range they are binding; but it has no bearing on anything except validation. Implementations cannot make any assumptions based on the size of the provided range. |
If type is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,
VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, data->pImage is used to
construct the descriptor.
If type is VK_DESCRIPTOR_TYPE_TENSOR_ARM, data->pTensorARM
is used to construct the descriptor.
If the nullDescriptor feature is enabled,
the corresponding element of data may be NULL to generate a null
descriptor.
Applications can give resource descriptors a debug name in a similar way to
naming an object, via the VkDebugUtilsObjectNameInfoEXT structure.
However, as there is no actual object, this structure must be passed via
the pNext chain of this structure, with a objectType of
VK_OBJECT_TYPE_UNKNOWN and a objectHandle of
VK_NULL_HANDLE.
The name is attached to the unique set of descriptor bits written by the
implementation, and writing the same bits again with new debug info may
rename the original descriptor.
|
Note
|
Implementations are not prevented from returning the same bits for different descriptors. This can result in multiple different resources mapping to the same name. A common case for this might be something like a uniform buffer and storage buffer with the same device address range. |
If a descriptor becomes invalid due to the underlying resource becoming invalid, implementations may remove the name association.
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.