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;
pub union DescriptorDataEXT {
p_sampler: *const vk::Sampler,
p_combined_image_sampler: *const vk::DescriptorImageInfo,
p_input_attachment_image: *const vk::DescriptorImageInfo,
p_sampled_image: *const vk::DescriptorImageInfo,
p_storage_image: *const vk::DescriptorImageInfo,
p_uniform_texel_buffer: *const vk::DescriptorAddressInfoEXT,
p_storage_texel_buffer: *const vk::DescriptorAddressInfoEXT,
p_uniform_buffer: *const vk::DescriptorAddressInfoEXT,
p_storage_buffer: *const vk::DescriptorAddressInfoEXT,
acceleration_structure: vk::DeviceAddress,
}
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-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