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 VkPhysicalDeviceFeatures2, 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;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • STYPE, PNEXT, SHADERINPUTATTACHMENTARRAYDYNAMICINDEXING, SHADERUNIFORMTEXELBUFFERARRAYDYNAMICINDEXING, SHADERSTORAGETEXELBUFFERARRAYDYNAMICINDEXING, SHADERUNIFORMBUFFERARRAYNONUNIFORMINDEXING, SHADERSAMPLEDIMAGEARRAYNONUNIFORMINDEXING, SHADERSTORAGEBUFFERARRAYNONUNIFORMINDEXING, SHADERSTORAGEIMAGEARRAYNONUNIFORMINDEXING, SHADERINPUTATTACHMENTARRAYNONUNIFORMINDEXING, SHADERUNIFORMTEXELBUFFERARRAYNONUNIFORMINDEXING, SHADERSTORAGETEXELBUFFERARRAYNONUNIFORMINDEXING, DESCRIPTORBINDINGUNIFORMBUFFERUPDATEAFTERBIND, DESCRIPTORBINDINGSAMPLEDIMAGEUPDATEAFTERBIND, DESCRIPTORBINDINGSTORAGEIMAGEUPDATEAFTERBIND, DESCRIPTORBINDINGSTORAGEBUFFERUPDATEAFTERBIND, DESCRIPTORBINDINGUNIFORMTEXELBUFFERUPDATEAFTERBIND, DESCRIPTORBINDINGSTORAGETEXELBUFFERUPDATEAFTERBIND, DESCRIPTORBINDINGUPDATEUNUSEDWHILEPENDING, DESCRIPTORBINDINGPARTIALLYBOUND, DESCRIPTORBINDINGVARIABLEDESCRIPTORCOUNT, RUNTIMEDESCRIPTORARRAY

        The struct member offsets.
    • Constructor Detail

      • VkPhysicalDeviceDescriptorIndexingFeaturesEXT

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT​(java.nio.ByteBuffer container)
        Creates a VkPhysicalDeviceDescriptorIndexingFeaturesEXT instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

        The created instance holds a strong reference to the container object.

    • Method Detail

      • sizeof

        public int sizeof()
        Description copied from class: Struct
        Returns sizeof(struct).
        Specified by:
        sizeof in class Struct
      • sType

        public int sType()
        Returns the value of the sType field.
      • pNext

        public long pNext()
        Returns the value of the pNext field.
      • shaderInputAttachmentArrayDynamicIndexing

        public boolean shaderInputAttachmentArrayDynamicIndexing()
        Returns the value of the shaderInputAttachmentArrayDynamicIndexing field.
      • shaderUniformTexelBufferArrayDynamicIndexing

        public boolean shaderUniformTexelBufferArrayDynamicIndexing()
        Returns the value of the shaderUniformTexelBufferArrayDynamicIndexing field.
      • shaderStorageTexelBufferArrayDynamicIndexing

        public boolean shaderStorageTexelBufferArrayDynamicIndexing()
        Returns the value of the shaderStorageTexelBufferArrayDynamicIndexing field.
      • shaderUniformBufferArrayNonUniformIndexing

        public boolean shaderUniformBufferArrayNonUniformIndexing()
        Returns the value of the shaderUniformBufferArrayNonUniformIndexing field.
      • shaderSampledImageArrayNonUniformIndexing

        public boolean shaderSampledImageArrayNonUniformIndexing()
        Returns the value of the shaderSampledImageArrayNonUniformIndexing field.
      • shaderStorageBufferArrayNonUniformIndexing

        public boolean shaderStorageBufferArrayNonUniformIndexing()
        Returns the value of the shaderStorageBufferArrayNonUniformIndexing field.
      • shaderStorageImageArrayNonUniformIndexing

        public boolean shaderStorageImageArrayNonUniformIndexing()
        Returns the value of the shaderStorageImageArrayNonUniformIndexing field.
      • shaderInputAttachmentArrayNonUniformIndexing

        public boolean shaderInputAttachmentArrayNonUniformIndexing()
        Returns the value of the shaderInputAttachmentArrayNonUniformIndexing field.
      • shaderUniformTexelBufferArrayNonUniformIndexing

        public boolean shaderUniformTexelBufferArrayNonUniformIndexing()
        Returns the value of the shaderUniformTexelBufferArrayNonUniformIndexing field.
      • shaderStorageTexelBufferArrayNonUniformIndexing

        public boolean shaderStorageTexelBufferArrayNonUniformIndexing()
        Returns the value of the shaderStorageTexelBufferArrayNonUniformIndexing field.
      • descriptorBindingUniformBufferUpdateAfterBind

        public boolean descriptorBindingUniformBufferUpdateAfterBind()
        Returns the value of the descriptorBindingUniformBufferUpdateAfterBind field.
      • descriptorBindingSampledImageUpdateAfterBind

        public boolean descriptorBindingSampledImageUpdateAfterBind()
        Returns the value of the descriptorBindingSampledImageUpdateAfterBind field.
      • descriptorBindingStorageImageUpdateAfterBind

        public boolean descriptorBindingStorageImageUpdateAfterBind()
        Returns the value of the descriptorBindingStorageImageUpdateAfterBind field.
      • descriptorBindingStorageBufferUpdateAfterBind

        public boolean descriptorBindingStorageBufferUpdateAfterBind()
        Returns the value of the descriptorBindingStorageBufferUpdateAfterBind field.
      • descriptorBindingUniformTexelBufferUpdateAfterBind

        public boolean descriptorBindingUniformTexelBufferUpdateAfterBind()
        Returns the value of the descriptorBindingUniformTexelBufferUpdateAfterBind field.
      • descriptorBindingStorageTexelBufferUpdateAfterBind

        public boolean descriptorBindingStorageTexelBufferUpdateAfterBind()
        Returns the value of the descriptorBindingStorageTexelBufferUpdateAfterBind field.
      • descriptorBindingUpdateUnusedWhilePending

        public boolean descriptorBindingUpdateUnusedWhilePending()
        Returns the value of the descriptorBindingUpdateUnusedWhilePending field.
      • descriptorBindingPartiallyBound

        public boolean descriptorBindingPartiallyBound()
        Returns the value of the descriptorBindingPartiallyBound field.
      • descriptorBindingVariableDescriptorCount

        public boolean descriptorBindingVariableDescriptorCount()
        Returns the value of the descriptorBindingVariableDescriptorCount field.
      • runtimeDescriptorArray

        public boolean runtimeDescriptorArray()
        Returns the value of the runtimeDescriptorArray field.
      • shaderInputAttachmentArrayDynamicIndexing

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT shaderInputAttachmentArrayDynamicIndexing​(boolean value)
        Sets the specified value to the shaderInputAttachmentArrayDynamicIndexing field.
      • shaderUniformTexelBufferArrayDynamicIndexing

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT shaderUniformTexelBufferArrayDynamicIndexing​(boolean value)
        Sets the specified value to the shaderUniformTexelBufferArrayDynamicIndexing field.
      • shaderStorageTexelBufferArrayDynamicIndexing

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT shaderStorageTexelBufferArrayDynamicIndexing​(boolean value)
        Sets the specified value to the shaderStorageTexelBufferArrayDynamicIndexing field.
      • shaderUniformBufferArrayNonUniformIndexing

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT shaderUniformBufferArrayNonUniformIndexing​(boolean value)
        Sets the specified value to the shaderUniformBufferArrayNonUniformIndexing field.
      • shaderSampledImageArrayNonUniformIndexing

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT shaderSampledImageArrayNonUniformIndexing​(boolean value)
        Sets the specified value to the shaderSampledImageArrayNonUniformIndexing field.
      • shaderStorageBufferArrayNonUniformIndexing

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT shaderStorageBufferArrayNonUniformIndexing​(boolean value)
        Sets the specified value to the shaderStorageBufferArrayNonUniformIndexing field.
      • shaderStorageImageArrayNonUniformIndexing

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT shaderStorageImageArrayNonUniformIndexing​(boolean value)
        Sets the specified value to the shaderStorageImageArrayNonUniformIndexing field.
      • shaderInputAttachmentArrayNonUniformIndexing

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT shaderInputAttachmentArrayNonUniformIndexing​(boolean value)
        Sets the specified value to the shaderInputAttachmentArrayNonUniformIndexing field.
      • shaderUniformTexelBufferArrayNonUniformIndexing

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT shaderUniformTexelBufferArrayNonUniformIndexing​(boolean value)
        Sets the specified value to the shaderUniformTexelBufferArrayNonUniformIndexing field.
      • shaderStorageTexelBufferArrayNonUniformIndexing

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT shaderStorageTexelBufferArrayNonUniformIndexing​(boolean value)
        Sets the specified value to the shaderStorageTexelBufferArrayNonUniformIndexing field.
      • descriptorBindingUniformBufferUpdateAfterBind

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptorBindingUniformBufferUpdateAfterBind​(boolean value)
        Sets the specified value to the descriptorBindingUniformBufferUpdateAfterBind field.
      • descriptorBindingSampledImageUpdateAfterBind

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptorBindingSampledImageUpdateAfterBind​(boolean value)
        Sets the specified value to the descriptorBindingSampledImageUpdateAfterBind field.
      • descriptorBindingStorageImageUpdateAfterBind

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptorBindingStorageImageUpdateAfterBind​(boolean value)
        Sets the specified value to the descriptorBindingStorageImageUpdateAfterBind field.
      • descriptorBindingStorageBufferUpdateAfterBind

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptorBindingStorageBufferUpdateAfterBind​(boolean value)
        Sets the specified value to the descriptorBindingStorageBufferUpdateAfterBind field.
      • descriptorBindingUniformTexelBufferUpdateAfterBind

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptorBindingUniformTexelBufferUpdateAfterBind​(boolean value)
        Sets the specified value to the descriptorBindingUniformTexelBufferUpdateAfterBind field.
      • descriptorBindingStorageTexelBufferUpdateAfterBind

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptorBindingStorageTexelBufferUpdateAfterBind​(boolean value)
        Sets the specified value to the descriptorBindingStorageTexelBufferUpdateAfterBind field.
      • descriptorBindingUpdateUnusedWhilePending

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptorBindingUpdateUnusedWhilePending​(boolean value)
        Sets the specified value to the descriptorBindingUpdateUnusedWhilePending field.
      • descriptorBindingVariableDescriptorCount

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT descriptorBindingVariableDescriptorCount​(boolean value)
        Sets the specified value to the descriptorBindingVariableDescriptorCount field.
      • set

        public VkPhysicalDeviceDescriptorIndexingFeaturesEXT set​(int sType,
                                                                 long pNext,
                                                                 boolean shaderInputAttachmentArrayDynamicIndexing,
                                                                 boolean shaderUniformTexelBufferArrayDynamicIndexing,
                                                                 boolean shaderStorageTexelBufferArrayDynamicIndexing,
                                                                 boolean shaderUniformBufferArrayNonUniformIndexing,
                                                                 boolean shaderSampledImageArrayNonUniformIndexing,
                                                                 boolean shaderStorageBufferArrayNonUniformIndexing,
                                                                 boolean shaderStorageImageArrayNonUniformIndexing,
                                                                 boolean shaderInputAttachmentArrayNonUniformIndexing,
                                                                 boolean shaderUniformTexelBufferArrayNonUniformIndexing,
                                                                 boolean shaderStorageTexelBufferArrayNonUniformIndexing,
                                                                 boolean descriptorBindingUniformBufferUpdateAfterBind,
                                                                 boolean descriptorBindingSampledImageUpdateAfterBind,
                                                                 boolean descriptorBindingStorageImageUpdateAfterBind,
                                                                 boolean descriptorBindingStorageBufferUpdateAfterBind,
                                                                 boolean descriptorBindingUniformTexelBufferUpdateAfterBind,
                                                                 boolean descriptorBindingStorageTexelBufferUpdateAfterBind,
                                                                 boolean descriptorBindingUpdateUnusedWhilePending,
                                                                 boolean descriptorBindingPartiallyBound,
                                                                 boolean descriptorBindingVariableDescriptorCount,
                                                                 boolean runtimeDescriptorArray)
        Initializes this struct with the specified values.
      • nsType

        public static int nsType​(long struct)
        Unsafe version of sType().
      • npNext

        public static long npNext​(long struct)
        Unsafe version of pNext().
      • nruntimeDescriptorArray

        public static int nruntimeDescriptorArray​(long struct)
        Unsafe version of runtimeDescriptorArray().
      • nsType

        public static void nsType​(long struct,
                                  int value)
        Unsafe version of sType.
      • npNext

        public static void npNext​(long struct,
                                  long value)
        Unsafe version of pNext.
      • ndescriptorBindingPartiallyBound

        public static void ndescriptorBindingPartiallyBound​(long struct,
                                                            int value)
      • nruntimeDescriptorArray

        public static void nruntimeDescriptorArray​(long struct,
                                                   int value)
        Unsafe version of runtimeDescriptorArray.