Class VkPhysicalDeviceDescriptorIndexingFeaturesEXT

  • All Implemented Interfaces:
    java.lang.AutoCloseable, NativeResource, Pointer

    public class VkPhysicalDeviceDescriptorIndexingFeaturesEXT
    extends Struct
    implements NativeResource
    Structure describing descriptor indexing features that can be supported by an implementation.
    Description

    If the VkPhysicalDeviceDescriptorIndexingFeaturesEXT structure is included in the pNext chain of VkPhysicalDeviceFeatures2KHR, it is filled with values indicating whether each feature is supported. VkPhysicalDeviceDescriptorIndexingFeaturesEXT can also be used in the pNext chain of VkDeviceCreateInfo to enable features.

    Valid Usage (Implicit)

    Member documentation

    • shaderInputAttachmentArrayDynamicIndexing – indicates whether arrays of input attachments can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of DESCRIPTOR_TYPE_INPUT_ATTACHMENT must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the InputAttachmentArrayDynamicIndexingEXT capability.
    • shaderUniformTexelBufferArrayDynamicIndexing – indicates whether arrays of uniform texel buffers can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the UniformTexelBufferArrayDynamicIndexingEXT capability.
    • shaderStorageTexelBufferArrayDynamicIndexing – indicates whether arrays of storage texel buffers can be indexed by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor type of DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the StorageTexelBufferArrayDynamicIndexingEXT capability.
    • shaderUniformBufferArrayNonUniformIndexing – indicates 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 of DESCRIPTOR_TYPE_UNIFORM_BUFFER or DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the UniformBufferArrayNonUniformIndexingEXT capability.
    • shaderSampledImageArrayNonUniformIndexing – indicates 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 of DESCRIPTOR_TYPE_SAMPLER, DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or DESCRIPTOR_TYPE_SAMPLED_IMAGE must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the SampledImageArrayNonUniformIndexingEXT capability.
    • shaderStorageBufferArrayNonUniformIndexing – indicates 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 of DESCRIPTOR_TYPE_STORAGE_BUFFER or DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the StorageBufferArrayNonUniformIndexingEXT capability.
    • shaderStorageImageArrayNonUniformIndexing – indicates 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 of DESCRIPTOR_TYPE_STORAGE_IMAGE must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the StorageImageArrayNonUniformIndexingEXT capability.
    • shaderInputAttachmentArrayNonUniformIndexing – indicates 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 of DESCRIPTOR_TYPE_INPUT_ATTACHMENT must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the InputAttachmentArrayNonUniformIndexingEXT capability.
    • shaderUniformTexelBufferArrayNonUniformIndexing – indicates 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 of DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the UniformTexelBufferArrayNonUniformIndexingEXT capability.
    • shaderStorageTexelBufferArrayNonUniformIndexing – indicates 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 of DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must not be indexed by non-uniform integer expressions when aggregated into arrays in shader code. This also indicates whether shader modules can declare the StorageTexelBufferArrayNonUniformIndexingEXT capability.
    • descriptorBindingUniformBufferUpdateAfterBind – indicates whether the implementation supports updating uniform buffer descriptors after a set is bound. If this feature is not enabled, DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT must not be used with DESCRIPTOR_TYPE_UNIFORM_BUFFER.
    • descriptorBindingSampledImageUpdateAfterBind – indicates whether the implementation supports updating sampled image descriptors after a set is bound. If this feature is not enabled, DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT must not be used with DESCRIPTOR_TYPE_SAMPLER, DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or DESCRIPTOR_TYPE_SAMPLED_IMAGE.
    • descriptorBindingStorageImageUpdateAfterBind – indicates whether the implementation supports updating storage image descriptors after a set is bound. If this feature is not enabled, DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT must not be used with DESCRIPTOR_TYPE_STORAGE_IMAGE.
    • descriptorBindingStorageBufferUpdateAfterBind – indicates whether the implementation supports updating storage buffer descriptors after a set is bound. If this feature is not enabled, DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT must not be used with DESCRIPTOR_TYPE_STORAGE_BUFFER.
    • descriptorBindingUniformTexelBufferUpdateAfterBind – indicates whether the implementation supports updating uniform texel buffer descriptors after a set is bound. If this feature is not enabled, DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT must not be used with DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER.
    • descriptorBindingStorageTexelBufferUpdateAfterBind – indicates whether the implementation supports updating storage texel buffer descriptors after a set is bound. If this feature is not enabled, DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT must not be used with DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER.
    • descriptorBindingUpdateUnusedWhilePending – indicates whether the implementation supports updating descriptors while the set is in use. If this feature is not enabled, DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT must not be used.
    • descriptorBindingPartiallyBound – indicates whether the implementation supports statically using a descriptor set binding in which some descriptors are not valid. If this feature is not enabled, DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT must not be used.
    • descriptorBindingVariableDescriptorCount – indicates whether the implementation supports descriptor sets with a variable-sized last binding. If this feature is not enabled, DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT must not be used.
    • runtimeDescriptorArray – indicates whether the implementation supports the SPIR-V RuntimeDescriptorArrayEXT capability. If this feature is not enabled, descriptors must not be declared in runtime arrays.

    Layout

    
     struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
         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;
     }