Structures
VkPhysicalDeviceDescriptorIndexingFeatures
Structure describing descriptor indexing features that can be supported by an implementation
The VkPhysicalDeviceDescriptorIndexingFeatures structure is defined
as:
typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
VkStructureType sType;
void* pNext;
VkBool32 shaderInputAttachmentArrayDynamicIndexing;
VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
VkBool32 shaderUniformBufferArrayNonUniformIndexing;
VkBool32 shaderSampledImageArrayNonUniformIndexing;
VkBool32 shaderStorageBufferArrayNonUniformIndexing;
VkBool32 shaderStorageImageArrayNonUniformIndexing;
VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
VkBool32 descriptorBindingSampledImageUpdateAfterBind;
VkBool32 descriptorBindingStorageImageUpdateAfterBind;
VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
VkBool32 descriptorBindingUpdateUnusedWhilePending;
VkBool32 descriptorBindingPartiallyBound;
VkBool32 descriptorBindingVariableDescriptorCount;
VkBool32 runtimeDescriptorArray;
} VkPhysicalDeviceDescriptorIndexingFeatures;
pub struct PhysicalDeviceDescriptorIndexingFeatures {
s_type: vk::StructureType,
p_next: *mut c_void,
shader_input_attachment_array_dynamic_indexing: vk::Bool32,
shader_uniform_texel_buffer_array_dynamic_indexing: vk::Bool32,
shader_storage_texel_buffer_array_dynamic_indexing: vk::Bool32,
shader_uniform_buffer_array_non_uniform_indexing: vk::Bool32,
shader_sampled_image_array_non_uniform_indexing: vk::Bool32,
shader_storage_buffer_array_non_uniform_indexing: vk::Bool32,
shader_storage_image_array_non_uniform_indexing: vk::Bool32,
shader_input_attachment_array_non_uniform_indexing: vk::Bool32,
shader_uniform_texel_buffer_array_non_uniform_indexing: vk::Bool32,
shader_storage_texel_buffer_array_non_uniform_indexing: vk::Bool32,
descriptor_binding_uniform_buffer_update_after_bind: vk::Bool32,
descriptor_binding_sampled_image_update_after_bind: vk::Bool32,
descriptor_binding_storage_image_update_after_bind: vk::Bool32,
descriptor_binding_storage_buffer_update_after_bind: vk::Bool32,
descriptor_binding_uniform_texel_buffer_update_after_bind: vk::Bool32,
descriptor_binding_storage_texel_buffer_update_after_bind: vk::Bool32,
descriptor_binding_update_unused_while_pending: vk::Bool32,
descriptor_binding_partially_bound: vk::Bool32,
descriptor_binding_variable_descriptor_count: vk::Bool32,
runtime_descriptor_array: vk::Bool32,
}
typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
type PhysicalDeviceDescriptorIndexingFeaturesEXT = vk::PhysicalDeviceDescriptorIndexingFeatures;
This structure describes the following features:
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.- EXTENSION FEATURES SHADERINPUTATTACHMENTARRAYDYNAMICINDEXING
shaderInputAttachmentArrayDynamicIndexingindicates whether arrays of input attachments can be indexed by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENTmust be indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare theInputAttachmentArrayDynamicIndexingcapability. - EXTENSION FEATURES SHADERUNIFORMTEXELBUFFERARRAYDYNAMICINDEXING
shaderUniformTexelBufferArrayDynamicIndexingindicates whether arrays of uniform texel buffers can be indexed by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERmust be indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare theUniformTexelBufferArrayDynamicIndexingcapability. - EXTENSION FEATURES SHADERSTORAGETEXELBUFFERARRAYDYNAMICINDEXING
shaderStorageTexelBufferArrayDynamicIndexingindicates whether arrays of storage texel buffers can be indexed by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERmust be indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare theStorageTexelBufferArrayDynamicIndexingcapability. - EXTENSION FEATURES SHADERUNIFORMBUFFERARRAYNONUNIFORMINDEXING
shaderUniformBufferArrayNonUniformIndexingindicates whether arrays of uniform buffers can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFERorVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMICmust not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare theUniformBufferArrayNonUniformIndexingcapability. - EXTENSION FEATURES SHADERSAMPLEDIMAGEARRAYNONUNIFORMINDEXING
shaderSampledImageArrayNonUniformIndexingindicates whether arrays of samplers or sampled images can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_SAMPLER,VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, orVK_DESCRIPTOR_TYPE_SAMPLED_IMAGEmust not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare theSampledImageArrayNonUniformIndexingcapability. - EXTENSION FEATURES SHADERSTORAGEBUFFERARRAYNONUNIFORMINDEXING
shaderStorageBufferArrayNonUniformIndexingindicates whether arrays of storage buffers can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFERorVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMICmust not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare theStorageBufferArrayNonUniformIndexingcapability. - EXTENSION FEATURES SHADERSTORAGEIMAGEARRAYNONUNIFORMINDEXING
shaderStorageImageArrayNonUniformIndexingindicates whether arrays of storage images can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_STORAGE_IMAGEmust not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare theStorageImageArrayNonUniformIndexingcapability. - EXTENSION FEATURES SHADERINPUTATTACHMENTARRAYNONUNIFORMINDEXING
shaderInputAttachmentArrayNonUniformIndexingindicates whether arrays of input attachments can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENTmust not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare theInputAttachmentArrayNonUniformIndexingcapability. - EXTENSION FEATURES SHADERUNIFORMTEXELBUFFERARRAYNONUNIFORMINDEXING
shaderUniformTexelBufferArrayNonUniformIndexingindicates whether arrays of uniform texel buffers can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERmust not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare theUniformTexelBufferArrayNonUniformIndexingcapability. - EXTENSION FEATURES SHADERSTORAGETEXELBUFFERARRAYNONUNIFORMINDEXING
shaderStorageTexelBufferArrayNonUniformIndexingindicates whether arrays of storage texel buffers can be indexed by non-uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type ofVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERmust not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare theStorageTexelBufferArrayNonUniformIndexingcapability. - EXTENSION FEATURES DESCRIPTORBINDINGUNIFORMBUFFERUPDATEAFTERBIND
descriptorBindingUniformBufferUpdateAfterBindindicates whether the implementation supports updating uniform buffer descriptors after a set is bound. If this feature is not enabled,VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITmust not be used withVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER. - EXTENSION FEATURES DESCRIPTORBINDINGSAMPLEDIMAGEUPDATEAFTERBIND
descriptorBindingSampledImageUpdateAfterBindindicates whether the implementation supports updating sampled image descriptors after a set is bound. If this feature is not enabled,VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITmust not be used withVK_DESCRIPTOR_TYPE_SAMPLER,VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, orVK_DESCRIPTOR_TYPE_SAMPLED_IMAGE. - EXTENSION FEATURES DESCRIPTORBINDINGSTORAGEIMAGEUPDATEAFTERBIND
descriptorBindingStorageImageUpdateAfterBindindicates whether the implementation supports updating storage image descriptors after a set is bound. If this feature is not enabled,VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITmust not be used withVK_DESCRIPTOR_TYPE_STORAGE_IMAGE. - EXTENSION FEATURES DESCRIPTORBINDINGSTORAGEBUFFERUPDATEAFTERBIND
descriptorBindingStorageBufferUpdateAfterBindindicates whether the implementation supports updating storage buffer descriptors after a set is bound. If this feature is not enabled,VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITmust not be used withVK_DESCRIPTOR_TYPE_STORAGE_BUFFER. - EXTENSION FEATURES DESCRIPTORBINDINGUNIFORMTEXELBUFFERUPDATEAFTERBIND
descriptorBindingUniformTexelBufferUpdateAfterBindindicates whether the implementation supports updating uniform texel buffer descriptors after a set is bound. If this feature is not enabled,VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITmust not be used withVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER. - EXTENSION FEATURES DESCRIPTORBINDINGSTORAGETEXELBUFFERUPDATEAFTERBIND
descriptorBindingStorageTexelBufferUpdateAfterBindindicates whether the implementation supports updating storage texel buffer descriptors after a set is bound. If this feature is not enabled,VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BITmust not be used withVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER. - EXTENSION FEATURES DESCRIPTORBINDINGUPDATEUNUSEDWHILEPENDING
descriptorBindingUpdateUnusedWhilePendingindicates whether the implementation supports updating descriptors while the set is in use. If this feature is not enabled,VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BITmust not be used. - EXTENSION FEATURES DESCRIPTORBINDINGPARTIALLYBOUND
descriptorBindingPartiallyBoundindicates whether the implementation supports statically using a descriptor set binding in which some descriptors are not valid. If this feature is not enabled,VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BITmust not be used. - EXTENSION FEATURES DESCRIPTORBINDINGVARIABLEDESCRIPTORCOUNT
descriptorBindingVariableDescriptorCountindicates whether the implementation supports descriptor sets with a variable-sized last binding. If this feature is not enabled,VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BITmust not be used. - EXTENSION FEATURES RUNTIMEDESCRIPTORARRAY
runtimeDescriptorArrayindicates whether the implementation supports the SPIR-VRuntimeDescriptorArraycapability. If this feature is not enabled, descriptors must not be declared in runtime arrays.
If the VkPhysicalDeviceDescriptorIndexingFeatures structure is included in the pNext chain of the
VkPhysicalDeviceFeatures2 structure passed to
vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each
corresponding feature is supported.
If the application wishes to use a VkDevice with any features
described by VkPhysicalDeviceDescriptorIndexingFeatures, it must add an instance of the structure,
with the desired feature members set to VK_TRUE, to the pNext
chain of VkDeviceCreateInfo when creating the VkDevice.
Valid Usage (Implicit)
VUID-VkPhysicalDeviceDescriptorIndexingFeatures-sType-sType
sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES