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;
pSampleris a pointer to a VkSampler handle specifying the parameters of aVK_DESCRIPTOR_TYPE_SAMPLERdescriptor.pCombinedImageSampleris a pointer to a VkDescriptorImageInfo structure specifying the parameters of aVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERdescriptor.pInputAttachmentImageis a pointer to a VkDescriptorImageInfo structure specifying the parameters of aVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENTdescriptor.pSampledImageis a pointer to a VkDescriptorImageInfo structure specifying the parameters of aVK_DESCRIPTOR_TYPE_SAMPLED_IMAGEdescriptor.pStorageImageis a pointer to a VkDescriptorImageInfo structure specifying the parameters of aVK_DESCRIPTOR_TYPE_STORAGE_IMAGEdescriptor.pUniformTexelBufferis a pointer to a VkDescriptorAddressInfoEXT structure specifying the parameters of aVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERdescriptor.pStorageTexelBufferis a pointer to a VkDescriptorAddressInfoEXT structure specifying the parameters of aVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERdescriptor.pUniformBufferis a pointer to a VkDescriptorAddressInfoEXT structure specifying the parameters of aVK_DESCRIPTOR_TYPE_UNIFORM_BUFFERdescriptor.pStorageBufferis a pointer to a VkDescriptorAddressInfoEXT structure specifying the parameters of aVK_DESCRIPTOR_TYPE_STORAGE_BUFFERdescriptor.accelerationStructureis the address of a VkAccelerationStructureKHR specifying the parameters of aVK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHRdescriptor , or a VkAccelerationStructureNV handle specifying the parameters of aVK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVdescriptor.
If the nullDescriptor feature is enabled,
pSampledImage, pStorageImage, pUniformTexelBuffer,
pStorageTexelBuffer, pUniformBuffer, and pStorageBuffercan 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