VkDescriptorDataEXT
Data describing the descriptor is passed in a VkDescriptorDataEXT
structure:
typedef union VkDescriptorDataEXT {
const VkSampler* pSampler;
const VkDescriptorImageInfo* pCombinedImageSampler;
const VkDescriptorImageInfo* pInputAttachmentImage;
const VkDescriptorImageInfo* pSampledImage;
const VkDescriptorImageInfo* pStorageImage;
const VkDescriptorAddressInfoEXT* pUniformTexelBuffer;
const VkDescriptorAddressInfoEXT* pStorageTexelBuffer;
const VkDescriptorAddressInfoEXT* pUniformBuffer;
const VkDescriptorAddressInfoEXT* pStorageBuffer;
VkDeviceAddress accelerationStructure;
} VkDescriptorDataEXT;
pSampler
is a pointer to a VkSampler handle specifying the parameters of aVK_DESCRIPTOR_TYPE_SAMPLER
descriptor.pCombinedImageSampler
is a pointer to a VkDescriptorImageInfo structure specifying the parameters of aVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
descriptor.pInputAttachmentImage
is a pointer to a VkDescriptorImageInfo structure specifying the parameters of aVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
descriptor.pSampledImage
is a pointer to a VkDescriptorImageInfo structure specifying the parameters of aVK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
descriptor.pStorageImage
is a pointer to a VkDescriptorImageInfo structure specifying the parameters of aVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
descriptor.pUniformTexelBuffer
is a pointer to a VkDescriptorAddressInfoEXT structure specifying the parameters of aVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
descriptor.pStorageTexelBuffer
is a pointer to a VkDescriptorAddressInfoEXT structure specifying the parameters of aVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
descriptor.pUniformBuffer
is a pointer to a VkDescriptorAddressInfoEXT structure specifying the parameters of aVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
descriptor.pStorageBuffer
is a pointer to a VkDescriptorAddressInfoEXT structure specifying the parameters of aVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
descriptor.accelerationStructure
is the address of a VkAccelerationStructureKHR specifying the parameters of aVK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
descriptor , or a VkAccelerationStructureNV handle specifying the parameters of aVK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
descriptor.
If the nullDescriptor
feature is enabled,
pSampledImage
, pStorageImage
, pUniformTexelBuffer
,
pStorageTexelBuffer
, pUniformBuffer
, and pStorageBuffer
can each be NULL
.
Loads from a null descriptor return zero values and stores and atomics to a
null descriptor are discarded.
If the nullDescriptor
feature is enabled,
accelerationStructure
can be 0
.
A null acceleration structure descriptor results in the miss shader being
invoked.
Valid Usage
VUID-VkDescriptorDataEXT-type-08030
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
, and
pUniformBuffer→address
is the address of a non-sparse buffer,
then that buffer must be bound completely and contiguously to a single
VkDeviceMemory
object
VUID-VkDescriptorDataEXT-type-08031
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
, and
pStorageBuffer→address
is the address of a non-sparse buffer,
then that buffer must be bound completely and contiguously to a single
VkDeviceMemory
object
VUID-VkDescriptorDataEXT-type-08032
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
, and
pUniformTexelBuffer→address
is the address of a non-sparse
buffer, then that buffer must be bound completely and contiguously to a
single VkDeviceMemory
object
VUID-VkDescriptorDataEXT-type-08033
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
, and
pStorageTexelBuffer→address
is the address of a non-sparse
buffer, then that buffer must be bound completely and contiguously to a
single VkDeviceMemory
object
VUID-VkDescriptorDataEXT-type-08034
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
, and the
nullDescriptor
feature is not
enabled, pCombinedImageSampler→imageView
must not be
VK_NULL_HANDLE
VUID-VkDescriptorDataEXT-type-08035
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
, and the
nullDescriptor
feature is not
enabled, pSampledImage
must not be NULL
and
pSampledImage→imageView
must not be VK_NULL_HANDLE
VUID-VkDescriptorDataEXT-type-08036
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
, and the
nullDescriptor
feature is not
enabled, pStorageImage
must not be NULL
and
pStorageImage→imageView
must not be VK_NULL_HANDLE
VUID-VkDescriptorDataEXT-type-08037
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
, and the
nullDescriptor
feature is not
enabled, pUniformTexelBuffer
must not be NULL
VUID-VkDescriptorDataEXT-type-08038
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
, and the
nullDescriptor
feature is not
enabled, pStorageTexelBuffer
must not be NULL
VUID-VkDescriptorDataEXT-type-08039
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
, and the
nullDescriptor
feature is not
enabled, pUniformBuffer
must not be NULL
VUID-VkDescriptorDataEXT-type-08040
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
, and the
nullDescriptor
feature is not
enabled, pStorageBuffer
must not be NULL
VUID-VkDescriptorDataEXT-type-08041
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
, and the
nullDescriptor
feature is not
enabled, accelerationStructure
must not be 0
VUID-VkDescriptorDataEXT-type-08042
If VkDescriptorGetInfoEXT:type
is
VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
, and the
nullDescriptor
feature is not
enabled, accelerationStructure
must not be 0