Class VulkanPhysicalDeviceFeatures12

java.lang.Object
com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures12
All Implemented Interfaces:
VulkanPhysicalDeviceFeatures12Type

public final class VulkanPhysicalDeviceFeatures12 extends Object implements VulkanPhysicalDeviceFeatures12Type
The features supported by a physical Vulkan 1.2 device.
See Also:
  • "VkPhysicalDeviceVulkan12Features"
  • Method Details

    • bufferDeviceAddress

      public boolean bufferDeviceAddress()
      bufferDeviceAddress indicates that the implementation supports accessing buffer memory in shaders as storage buffers via an address queried from vkGetBufferDeviceAddress.
      Specified by:
      bufferDeviceAddress in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • bufferDeviceAddressCaptureReplay

      public boolean bufferDeviceAddressCaptureReplay()
      bufferDeviceAddressCaptureReplay indicates that the implementation supports saving and reusing buffer and device addresses, e.g. for trace capture and replay.
      Specified by:
      bufferDeviceAddressCaptureReplay in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • bufferDeviceAddressMultiDevice

      public boolean bufferDeviceAddressMultiDevice()
      bufferDeviceAddressMultiDevice indicates that the implementation supports the bufferDeviceAddress , rayTracingPipeline and rayQuery features for logical devices created with multiple physical devices. If this feature is not supported, buffer and acceleration structure addresses must not be queried on a logical device created with more than one physical device.
      Specified by:
      bufferDeviceAddressMultiDevice in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • descriptorBindingPartiallyBound

      public boolean descriptorBindingPartiallyBound()
      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, VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT must not be used.
      Specified by:
      descriptorBindingPartiallyBound in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • descriptorBindingSampledImageUpdateAfterBind

      public boolean descriptorBindingSampledImageUpdateAfterBind()
      descriptorBindingSampledImageUpdateAfterBind indicates 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_BIT must not be used with VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE.
      Specified by:
      descriptorBindingSampledImageUpdateAfterBind in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • descriptorBindingStorageBufferUpdateAfterBind

      public boolean descriptorBindingStorageBufferUpdateAfterBind()
      descriptorBindingStorageBufferUpdateAfterBind indicates 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_BIT must not be used with VK_DESCRIPTOR_TYPE_STORAGE_BUFFER.
      Specified by:
      descriptorBindingStorageBufferUpdateAfterBind in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • descriptorBindingStorageImageUpdateAfterBind

      public boolean descriptorBindingStorageImageUpdateAfterBind()
      descriptorBindingStorageImageUpdateAfterBind indicates 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_BIT must not be used with VK_DESCRIPTOR_TYPE_STORAGE_IMAGE.
      Specified by:
      descriptorBindingStorageImageUpdateAfterBind in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • descriptorBindingStorageTexelBufferUpdateAfterBind

      public boolean descriptorBindingStorageTexelBufferUpdateAfterBind()
      descriptorBindingStorageTexelBufferUpdateAfterBind indicates 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_BIT must not be used with VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER.
      Specified by:
      descriptorBindingStorageTexelBufferUpdateAfterBind in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • descriptorBindingUniformBufferUpdateAfterBind

      public boolean descriptorBindingUniformBufferUpdateAfterBind()
      descriptorBindingUniformBufferUpdateAfterBind indicates 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_BIT must not be used with VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER.
      Specified by:
      descriptorBindingUniformBufferUpdateAfterBind in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • descriptorBindingUniformTexelBufferUpdateAfterBind

      public boolean descriptorBindingUniformTexelBufferUpdateAfterBind()
      descriptorBindingUniformTexelBufferUpdateAfterBind indicates 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_BIT must not be used with VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER.
      Specified by:
      descriptorBindingUniformTexelBufferUpdateAfterBind in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • descriptorBindingUpdateUnusedWhilePending

      public boolean descriptorBindingUpdateUnusedWhilePending()
      descriptorBindingUpdateUnusedWhilePending indicates 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_BIT must not be used.
      Specified by:
      descriptorBindingUpdateUnusedWhilePending in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • descriptorBindingVariableDescriptorCount

      public boolean descriptorBindingVariableDescriptorCount()
      descriptorBindingVariableDescriptorCount indicates whether the implementation supports descriptor sets with a variable-sized last binding. If this feature is not enabled, VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT must not be used.
      Specified by:
      descriptorBindingVariableDescriptorCount in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • descriptorIndexing

      public boolean descriptorIndexing()
      descriptorIndexing indicates whether the implementation supports the minimum set of descriptor indexing features as described in the Feature Requirements section. Enabling the descriptorIndexing member when vkCreateDevice is called does not imply the other minimum descriptor indexing features are also enabled. Those other descriptor indexing features must be enabled individually as needed by the application.
      Specified by:
      descriptorIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • drawIndirectCount

      public boolean drawIndirectCount()
      drawIndirectCount indicates whether the implementation supports the vkCmdDrawIndirectCount and vkCmdDrawIndexedIndirectCount functions. If this feature is not enabled, these functions must not be used.
      Specified by:
      drawIndirectCount in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • hostQueryReset

      public boolean hostQueryReset()
      hostQueryReset indicates that the implementation supports resetting queries from the host with vkResetQueryPool.
      Specified by:
      hostQueryReset in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • imagelessFramebuffer

      public boolean imagelessFramebuffer()
      imagelessFramebuffer indicates that the implementation supports specifying the image view for attachments at render pass begin time via VkRenderPassAttachmentBeginInfo.
      Specified by:
      imagelessFramebuffer in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • runtimeDescriptorArray

      public boolean runtimeDescriptorArray()
      runtimeDescriptorArray indicates whether the implementation supports the SPIR-V RuntimeDescriptorArray capability. If this feature is not enabled, descriptors must not be declared in runtime arrays.
      Specified by:
      runtimeDescriptorArray in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • samplerFilterMinmax

      public boolean samplerFilterMinmax()
      samplerFilterMinmax indicates whether the implementation supports a minimum set of required formats supporting min/max filtering as defined by the filterMinmaxSingleComponentFormats property minimum requirements. If this feature is not enabled, then no VkSamplerCreateInfo pNext chain can include a VkSamplerReductionModeCreateInfo structure.
      Specified by:
      samplerFilterMinmax in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • samplerMirrorClampToEdge

      public boolean samplerMirrorClampToEdge()
      samplerMirrorClampToEdge indicates whether the implementation supports the VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode. If this feature is not enabled, the VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode must not be used.
      Specified by:
      samplerMirrorClampToEdge in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • scalarBlockLayout

      public boolean scalarBlockLayout()
      scalarBlockLayout indicates that the implementation supports the layout of resource blocks in shaders using scalar alignment.
      Specified by:
      scalarBlockLayout in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • separateDepthStencilLayouts

      public boolean separateDepthStencilLayouts()
      separateDepthStencilLayouts indicates whether the implementation supports a VkImageMemoryBarrier for a depth/stencil image with only one of VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT set, and whether VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL can be used.
      Specified by:
      separateDepthStencilLayouts in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderBufferInt64Atomics

      public boolean shaderBufferInt64Atomics()
      shaderBufferInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed integer atomic operations on buffers.
      Specified by:
      shaderBufferInt64Atomics in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderFloat16

      public boolean shaderFloat16()
      shaderFloat16 indicates whether 16-bit floats (halfs) are supported in shader code. This also indicates whether shader modules can declare the Float16 capability. However, this only enables a subset of the storage classes that SPIR-V allows for the Float16 SPIR-V capability: Declaring and using 16-bit floats in the Private, Workgroup (for non-Block variables), and Function storage classes is enabled, while declaring them in the interface storage classes (e.g., UniformConstant, Uniform, StorageBuffer, Input, Output, and PushConstant) is not enabled.
      Specified by:
      shaderFloat16 in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderInputAttachmentArrayDynamicIndexing

      public boolean shaderInputAttachmentArrayDynamicIndexing()
      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 VK_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 InputAttachmentArrayDynamicIndexing capability.
      Specified by:
      shaderInputAttachmentArrayDynamicIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderInputAttachmentArrayNonUniformIndexing

      public boolean shaderInputAttachmentArrayNonUniformIndexing()
      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 VK_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 InputAttachmentArrayNonUniformIndexing capability.
      Specified by:
      shaderInputAttachmentArrayNonUniformIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderInt8

      public boolean shaderInt8()
      shaderInt8 indicates whether 8-bit integers (signed and unsigned) are supported in shader code. This also indicates whether shader modules can declare the Int8 capability. However, this only enables a subset of the storage classes that SPIR-V allows for the Int8 SPIR-V capability: Declaring and using 8-bit integers in the Private, Workgroup (for non-Block variables), and Function storage classes is enabled, while declaring them in the interface storage classes (e.g., UniformConstant, Uniform, StorageBuffer, Input, Output, and PushConstant) is not enabled.
      Specified by:
      shaderInt8 in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderOutputLayer

      public boolean shaderOutputLayer()
      shaderOutputLayer indicates whether the implementation supports the ShaderLayer SPIR-V capability enabling variables decorated with the Layer built-in to be exported from vertex or tessellation evaluation shaders. If this feature is not enabled, the Layer built-in decoration must not be used on outputs in vertex or tessellation evaluation shaders.
      Specified by:
      shaderOutputLayer in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderOutputViewportIndex

      public boolean shaderOutputViewportIndex()
      shaderOutputViewportIndex indicates whether the implementation supports the ShaderViewportIndex SPIR-V capability enabling variables decorated with the ViewportIndex built-in to be exported from vertex or tessellation evaluation shaders. If this feature is not enabled, the ViewportIndex built-in decoration must not be used on outputs in vertex or tessellation evaluation shaders.
      Specified by:
      shaderOutputViewportIndex in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderSampledImageArrayNonUniformIndexing

      public boolean shaderSampledImageArrayNonUniformIndexing()
      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 VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or VK_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 SampledImageArrayNonUniformIndexing capability.
      Specified by:
      shaderSampledImageArrayNonUniformIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderSharedInt64Atomics

      public boolean shaderSharedInt64Atomics()
      shaderSharedInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed integer atomic operations on shared memory.
      Specified by:
      shaderSharedInt64Atomics in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderStorageBufferArrayNonUniformIndexing

      public boolean shaderStorageBufferArrayNonUniformIndexing()
      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 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_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 StorageBufferArrayNonUniformIndexing capability.
      Specified by:
      shaderStorageBufferArrayNonUniformIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderStorageImageArrayNonUniformIndexing

      public boolean shaderStorageImageArrayNonUniformIndexing()
      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 VK_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 StorageImageArrayNonUniformIndexing capability.
      Specified by:
      shaderStorageImageArrayNonUniformIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderStorageTexelBufferArrayDynamicIndexing

      public boolean shaderStorageTexelBufferArrayDynamicIndexing()
      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 VK_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 StorageTexelBufferArrayDynamicIndexing capability.
      Specified by:
      shaderStorageTexelBufferArrayDynamicIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderStorageTexelBufferArrayNonUniformIndexing

      public boolean shaderStorageTexelBufferArrayNonUniformIndexing()
      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 VK_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 StorageTexelBufferArrayNonUniformIndexing capability.
      Specified by:
      shaderStorageTexelBufferArrayNonUniformIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderSubgroupExtendedTypes

      public boolean shaderSubgroupExtendedTypes()
      shaderSubgroupExtendedTypes is a boolean specifying whether subgroup operations can use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types in group operations with subgroup scope, if the implementation supports the types.
      Specified by:
      shaderSubgroupExtendedTypes in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderUniformBufferArrayNonUniformIndexing

      public boolean shaderUniformBufferArrayNonUniformIndexing()
      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 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_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 UniformBufferArrayNonUniformIndexing capability.
      Specified by:
      shaderUniformBufferArrayNonUniformIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderUniformTexelBufferArrayDynamicIndexing

      public boolean shaderUniformTexelBufferArrayDynamicIndexing()
      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 VK_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 UniformTexelBufferArrayDynamicIndexing capability.
      Specified by:
      shaderUniformTexelBufferArrayDynamicIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • shaderUniformTexelBufferArrayNonUniformIndexing

      public boolean shaderUniformTexelBufferArrayNonUniformIndexing()
      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 VK_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 UniformTexelBufferArrayNonUniformIndexing capability.
      Specified by:
      shaderUniformTexelBufferArrayNonUniformIndexing in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • storageBuffer8BitAccess

      public boolean storageBuffer8BitAccess()
      storageBuffer8BitAccess indicates whether objects in the StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer storage class with the Block decoration can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the StorageBuffer8BitAccess capability.
      Specified by:
      storageBuffer8BitAccess in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • storagePushConstant8

      public boolean storagePushConstant8()
      storagePushConstant8 indicates whether objects in the PushConstant storage class can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the StoragePushConstant8 capability.
      Specified by:
      storagePushConstant8 in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • subgroupBroadcastDynamicId

      public boolean subgroupBroadcastDynamicId()
      If subgroupBroadcastDynamicId is VK_TRUE, the “Id” operand of OpGroupNonUniformBroadcast can be dynamically uniform within a subgroup, and the “Index” operand of OpGroupNonUniformQuadBroadcast can be dynamically uniform within the derivative group. If it is VK_FALSE, these operands must be constants.
      Specified by:
      subgroupBroadcastDynamicId in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • timelineSemaphore

      public boolean timelineSemaphore()
      timelineSemaphore indicates whether semaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE are supported.
      Specified by:
      timelineSemaphore in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • uniformAndStorageBuffer8BitAccess

      public boolean uniformAndStorageBuffer8BitAccess()
      uniformAndStorageBuffer8BitAccess indicates whether objects in the Uniform storage class with the Block decoration can have 8-bit integer members. If this feature is not enabled, 8-bit integer members must not be used in such objects. This also indicates whether shader modules can declare the UniformAndStorageBuffer8BitAccess capability.
      Specified by:
      uniformAndStorageBuffer8BitAccess in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • uniformBufferStandardLayout

      public boolean uniformBufferStandardLayout()
      uniformBufferStandardLayout indicates that the implementation supports the same layouts for uniform buffers as for storage and other kinds of buffers. See Standard Buffer Layout.
      Specified by:
      uniformBufferStandardLayout in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • vulkanMemoryModel

      public boolean vulkanMemoryModel()
      vulkanMemoryModel indicates whether the Vulkan Memory Model is supported, as defined in Vulkan Memory Model. This also indicates whether shader modules can declare the VulkanMemoryModel capability.
      Specified by:
      vulkanMemoryModel in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • vulkanMemoryModelAvailabilityVisibilityChains

      public boolean vulkanMemoryModelAvailabilityVisibilityChains()
      vulkanMemoryModelAvailabilityVisibilityChains indicates whether the Vulkan Memory Model can use availability and visibility chains with more than one element.
      Specified by:
      vulkanMemoryModelAvailabilityVisibilityChains in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • vulkanMemoryModelDeviceScope

      public boolean vulkanMemoryModelDeviceScope()
      vulkanMemoryModelDeviceScope indicates whether the Vulkan Memory Model can use Device scope synchronization. This also indicates whether shader modules can declare the VulkanMemoryModelDeviceScope capability.
      Specified by:
      vulkanMemoryModelDeviceScope in interface VulkanPhysicalDeviceFeatures12Type
      Returns:
      true if supported
    • withBufferDeviceAddress

      public final VulkanPhysicalDeviceFeatures12 withBufferDeviceAddress(boolean value)
      Copy the current immutable object by setting a value for the bufferDeviceAddress attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for bufferDeviceAddress
      Returns:
      A modified copy of the this object
    • withBufferDeviceAddressCaptureReplay

      public final VulkanPhysicalDeviceFeatures12 withBufferDeviceAddressCaptureReplay(boolean value)
      Copy the current immutable object by setting a value for the bufferDeviceAddressCaptureReplay attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for bufferDeviceAddressCaptureReplay
      Returns:
      A modified copy of the this object
    • withBufferDeviceAddressMultiDevice

      public final VulkanPhysicalDeviceFeatures12 withBufferDeviceAddressMultiDevice(boolean value)
      Copy the current immutable object by setting a value for the bufferDeviceAddressMultiDevice attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for bufferDeviceAddressMultiDevice
      Returns:
      A modified copy of the this object
    • withDescriptorBindingPartiallyBound

      public final VulkanPhysicalDeviceFeatures12 withDescriptorBindingPartiallyBound(boolean value)
      Copy the current immutable object by setting a value for the descriptorBindingPartiallyBound attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for descriptorBindingPartiallyBound
      Returns:
      A modified copy of the this object
    • withDescriptorBindingSampledImageUpdateAfterBind

      public final VulkanPhysicalDeviceFeatures12 withDescriptorBindingSampledImageUpdateAfterBind(boolean value)
      Copy the current immutable object by setting a value for the descriptorBindingSampledImageUpdateAfterBind attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for descriptorBindingSampledImageUpdateAfterBind
      Returns:
      A modified copy of the this object
    • withDescriptorBindingStorageBufferUpdateAfterBind

      public final VulkanPhysicalDeviceFeatures12 withDescriptorBindingStorageBufferUpdateAfterBind(boolean value)
      Copy the current immutable object by setting a value for the descriptorBindingStorageBufferUpdateAfterBind attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for descriptorBindingStorageBufferUpdateAfterBind
      Returns:
      A modified copy of the this object
    • withDescriptorBindingStorageImageUpdateAfterBind

      public final VulkanPhysicalDeviceFeatures12 withDescriptorBindingStorageImageUpdateAfterBind(boolean value)
      Copy the current immutable object by setting a value for the descriptorBindingStorageImageUpdateAfterBind attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for descriptorBindingStorageImageUpdateAfterBind
      Returns:
      A modified copy of the this object
    • withDescriptorBindingStorageTexelBufferUpdateAfterBind

      public final VulkanPhysicalDeviceFeatures12 withDescriptorBindingStorageTexelBufferUpdateAfterBind(boolean value)
      Copy the current immutable object by setting a value for the descriptorBindingStorageTexelBufferUpdateAfterBind attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for descriptorBindingStorageTexelBufferUpdateAfterBind
      Returns:
      A modified copy of the this object
    • withDescriptorBindingUniformBufferUpdateAfterBind

      public final VulkanPhysicalDeviceFeatures12 withDescriptorBindingUniformBufferUpdateAfterBind(boolean value)
      Copy the current immutable object by setting a value for the descriptorBindingUniformBufferUpdateAfterBind attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for descriptorBindingUniformBufferUpdateAfterBind
      Returns:
      A modified copy of the this object
    • withDescriptorBindingUniformTexelBufferUpdateAfterBind

      public final VulkanPhysicalDeviceFeatures12 withDescriptorBindingUniformTexelBufferUpdateAfterBind(boolean value)
      Copy the current immutable object by setting a value for the descriptorBindingUniformTexelBufferUpdateAfterBind attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for descriptorBindingUniformTexelBufferUpdateAfterBind
      Returns:
      A modified copy of the this object
    • withDescriptorBindingUpdateUnusedWhilePending

      public final VulkanPhysicalDeviceFeatures12 withDescriptorBindingUpdateUnusedWhilePending(boolean value)
      Copy the current immutable object by setting a value for the descriptorBindingUpdateUnusedWhilePending attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for descriptorBindingUpdateUnusedWhilePending
      Returns:
      A modified copy of the this object
    • withDescriptorBindingVariableDescriptorCount

      public final VulkanPhysicalDeviceFeatures12 withDescriptorBindingVariableDescriptorCount(boolean value)
      Copy the current immutable object by setting a value for the descriptorBindingVariableDescriptorCount attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for descriptorBindingVariableDescriptorCount
      Returns:
      A modified copy of the this object
    • withDescriptorIndexing

      public final VulkanPhysicalDeviceFeatures12 withDescriptorIndexing(boolean value)
      Copy the current immutable object by setting a value for the descriptorIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for descriptorIndexing
      Returns:
      A modified copy of the this object
    • withDrawIndirectCount

      public final VulkanPhysicalDeviceFeatures12 withDrawIndirectCount(boolean value)
      Copy the current immutable object by setting a value for the drawIndirectCount attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for drawIndirectCount
      Returns:
      A modified copy of the this object
    • withHostQueryReset

      public final VulkanPhysicalDeviceFeatures12 withHostQueryReset(boolean value)
      Copy the current immutable object by setting a value for the hostQueryReset attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for hostQueryReset
      Returns:
      A modified copy of the this object
    • withImagelessFramebuffer

      public final VulkanPhysicalDeviceFeatures12 withImagelessFramebuffer(boolean value)
      Copy the current immutable object by setting a value for the imagelessFramebuffer attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for imagelessFramebuffer
      Returns:
      A modified copy of the this object
    • withRuntimeDescriptorArray

      public final VulkanPhysicalDeviceFeatures12 withRuntimeDescriptorArray(boolean value)
      Copy the current immutable object by setting a value for the runtimeDescriptorArray attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for runtimeDescriptorArray
      Returns:
      A modified copy of the this object
    • withSamplerFilterMinmax

      public final VulkanPhysicalDeviceFeatures12 withSamplerFilterMinmax(boolean value)
      Copy the current immutable object by setting a value for the samplerFilterMinmax attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for samplerFilterMinmax
      Returns:
      A modified copy of the this object
    • withSamplerMirrorClampToEdge

      public final VulkanPhysicalDeviceFeatures12 withSamplerMirrorClampToEdge(boolean value)
      Copy the current immutable object by setting a value for the samplerMirrorClampToEdge attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for samplerMirrorClampToEdge
      Returns:
      A modified copy of the this object
    • withScalarBlockLayout

      public final VulkanPhysicalDeviceFeatures12 withScalarBlockLayout(boolean value)
      Copy the current immutable object by setting a value for the scalarBlockLayout attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for scalarBlockLayout
      Returns:
      A modified copy of the this object
    • withSeparateDepthStencilLayouts

      public final VulkanPhysicalDeviceFeatures12 withSeparateDepthStencilLayouts(boolean value)
      Copy the current immutable object by setting a value for the separateDepthStencilLayouts attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for separateDepthStencilLayouts
      Returns:
      A modified copy of the this object
    • withShaderBufferInt64Atomics

      public final VulkanPhysicalDeviceFeatures12 withShaderBufferInt64Atomics(boolean value)
      Copy the current immutable object by setting a value for the shaderBufferInt64Atomics attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderBufferInt64Atomics
      Returns:
      A modified copy of the this object
    • withShaderFloat16

      public final VulkanPhysicalDeviceFeatures12 withShaderFloat16(boolean value)
      Copy the current immutable object by setting a value for the shaderFloat16 attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderFloat16
      Returns:
      A modified copy of the this object
    • withShaderInputAttachmentArrayDynamicIndexing

      public final VulkanPhysicalDeviceFeatures12 withShaderInputAttachmentArrayDynamicIndexing(boolean value)
      Copy the current immutable object by setting a value for the shaderInputAttachmentArrayDynamicIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderInputAttachmentArrayDynamicIndexing
      Returns:
      A modified copy of the this object
    • withShaderInputAttachmentArrayNonUniformIndexing

      public final VulkanPhysicalDeviceFeatures12 withShaderInputAttachmentArrayNonUniformIndexing(boolean value)
      Copy the current immutable object by setting a value for the shaderInputAttachmentArrayNonUniformIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderInputAttachmentArrayNonUniformIndexing
      Returns:
      A modified copy of the this object
    • withShaderInt8

      public final VulkanPhysicalDeviceFeatures12 withShaderInt8(boolean value)
      Copy the current immutable object by setting a value for the shaderInt8 attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderInt8
      Returns:
      A modified copy of the this object
    • withShaderOutputLayer

      public final VulkanPhysicalDeviceFeatures12 withShaderOutputLayer(boolean value)
      Copy the current immutable object by setting a value for the shaderOutputLayer attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderOutputLayer
      Returns:
      A modified copy of the this object
    • withShaderOutputViewportIndex

      public final VulkanPhysicalDeviceFeatures12 withShaderOutputViewportIndex(boolean value)
      Copy the current immutable object by setting a value for the shaderOutputViewportIndex attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderOutputViewportIndex
      Returns:
      A modified copy of the this object
    • withShaderSampledImageArrayNonUniformIndexing

      public final VulkanPhysicalDeviceFeatures12 withShaderSampledImageArrayNonUniformIndexing(boolean value)
      Copy the current immutable object by setting a value for the shaderSampledImageArrayNonUniformIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderSampledImageArrayNonUniformIndexing
      Returns:
      A modified copy of the this object
    • withShaderSharedInt64Atomics

      public final VulkanPhysicalDeviceFeatures12 withShaderSharedInt64Atomics(boolean value)
      Copy the current immutable object by setting a value for the shaderSharedInt64Atomics attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderSharedInt64Atomics
      Returns:
      A modified copy of the this object
    • withShaderStorageBufferArrayNonUniformIndexing

      public final VulkanPhysicalDeviceFeatures12 withShaderStorageBufferArrayNonUniformIndexing(boolean value)
      Copy the current immutable object by setting a value for the shaderStorageBufferArrayNonUniformIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderStorageBufferArrayNonUniformIndexing
      Returns:
      A modified copy of the this object
    • withShaderStorageImageArrayNonUniformIndexing

      public final VulkanPhysicalDeviceFeatures12 withShaderStorageImageArrayNonUniformIndexing(boolean value)
      Copy the current immutable object by setting a value for the shaderStorageImageArrayNonUniformIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderStorageImageArrayNonUniformIndexing
      Returns:
      A modified copy of the this object
    • withShaderStorageTexelBufferArrayDynamicIndexing

      public final VulkanPhysicalDeviceFeatures12 withShaderStorageTexelBufferArrayDynamicIndexing(boolean value)
      Copy the current immutable object by setting a value for the shaderStorageTexelBufferArrayDynamicIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderStorageTexelBufferArrayDynamicIndexing
      Returns:
      A modified copy of the this object
    • withShaderStorageTexelBufferArrayNonUniformIndexing

      public final VulkanPhysicalDeviceFeatures12 withShaderStorageTexelBufferArrayNonUniformIndexing(boolean value)
      Copy the current immutable object by setting a value for the shaderStorageTexelBufferArrayNonUniformIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderStorageTexelBufferArrayNonUniformIndexing
      Returns:
      A modified copy of the this object
    • withShaderSubgroupExtendedTypes

      public final VulkanPhysicalDeviceFeatures12 withShaderSubgroupExtendedTypes(boolean value)
      Copy the current immutable object by setting a value for the shaderSubgroupExtendedTypes attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderSubgroupExtendedTypes
      Returns:
      A modified copy of the this object
    • withShaderUniformBufferArrayNonUniformIndexing

      public final VulkanPhysicalDeviceFeatures12 withShaderUniformBufferArrayNonUniformIndexing(boolean value)
      Copy the current immutable object by setting a value for the shaderUniformBufferArrayNonUniformIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderUniformBufferArrayNonUniformIndexing
      Returns:
      A modified copy of the this object
    • withShaderUniformTexelBufferArrayDynamicIndexing

      public final VulkanPhysicalDeviceFeatures12 withShaderUniformTexelBufferArrayDynamicIndexing(boolean value)
      Copy the current immutable object by setting a value for the shaderUniformTexelBufferArrayDynamicIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderUniformTexelBufferArrayDynamicIndexing
      Returns:
      A modified copy of the this object
    • withShaderUniformTexelBufferArrayNonUniformIndexing

      public final VulkanPhysicalDeviceFeatures12 withShaderUniformTexelBufferArrayNonUniformIndexing(boolean value)
      Copy the current immutable object by setting a value for the shaderUniformTexelBufferArrayNonUniformIndexing attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderUniformTexelBufferArrayNonUniformIndexing
      Returns:
      A modified copy of the this object
    • withStorageBuffer8BitAccess

      public final VulkanPhysicalDeviceFeatures12 withStorageBuffer8BitAccess(boolean value)
      Copy the current immutable object by setting a value for the storageBuffer8BitAccess attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for storageBuffer8BitAccess
      Returns:
      A modified copy of the this object
    • withStoragePushConstant8

      public final VulkanPhysicalDeviceFeatures12 withStoragePushConstant8(boolean value)
      Copy the current immutable object by setting a value for the storagePushConstant8 attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for storagePushConstant8
      Returns:
      A modified copy of the this object
    • withSubgroupBroadcastDynamicId

      public final VulkanPhysicalDeviceFeatures12 withSubgroupBroadcastDynamicId(boolean value)
      Copy the current immutable object by setting a value for the subgroupBroadcastDynamicId attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for subgroupBroadcastDynamicId
      Returns:
      A modified copy of the this object
    • withTimelineSemaphore

      public final VulkanPhysicalDeviceFeatures12 withTimelineSemaphore(boolean value)
      Copy the current immutable object by setting a value for the timelineSemaphore attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for timelineSemaphore
      Returns:
      A modified copy of the this object
    • withUniformAndStorageBuffer8BitAccess

      public final VulkanPhysicalDeviceFeatures12 withUniformAndStorageBuffer8BitAccess(boolean value)
      Copy the current immutable object by setting a value for the uniformAndStorageBuffer8BitAccess attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for uniformAndStorageBuffer8BitAccess
      Returns:
      A modified copy of the this object
    • withUniformBufferStandardLayout

      public final VulkanPhysicalDeviceFeatures12 withUniformBufferStandardLayout(boolean value)
      Copy the current immutable object by setting a value for the uniformBufferStandardLayout attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for uniformBufferStandardLayout
      Returns:
      A modified copy of the this object
    • withVulkanMemoryModel

      public final VulkanPhysicalDeviceFeatures12 withVulkanMemoryModel(boolean value)
      Copy the current immutable object by setting a value for the vulkanMemoryModel attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for vulkanMemoryModel
      Returns:
      A modified copy of the this object
    • withVulkanMemoryModelAvailabilityVisibilityChains

      public final VulkanPhysicalDeviceFeatures12 withVulkanMemoryModelAvailabilityVisibilityChains(boolean value)
      Copy the current immutable object by setting a value for the vulkanMemoryModelAvailabilityVisibilityChains attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for vulkanMemoryModelAvailabilityVisibilityChains
      Returns:
      A modified copy of the this object
    • withVulkanMemoryModelDeviceScope

      public final VulkanPhysicalDeviceFeatures12 withVulkanMemoryModelDeviceScope(boolean value)
      Copy the current immutable object by setting a value for the vulkanMemoryModelDeviceScope attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for vulkanMemoryModelDeviceScope
      Returns:
      A modified copy of the this object
    • equals

      public boolean equals(Object another)
      This instance is equal to all instances of VulkanPhysicalDeviceFeatures12 that have equal attribute values.
      Overrides:
      equals in class Object
      Returns:
      true if this is equal to another instance
    • hashCode

      public int hashCode()
      Computes a hash code from attributes: bufferDeviceAddress, bufferDeviceAddressCaptureReplay, bufferDeviceAddressMultiDevice, descriptorBindingPartiallyBound, descriptorBindingSampledImageUpdateAfterBind, descriptorBindingStorageBufferUpdateAfterBind, descriptorBindingStorageImageUpdateAfterBind, descriptorBindingStorageTexelBufferUpdateAfterBind, descriptorBindingUniformBufferUpdateAfterBind, descriptorBindingUniformTexelBufferUpdateAfterBind, descriptorBindingUpdateUnusedWhilePending, descriptorBindingVariableDescriptorCount, descriptorIndexing, drawIndirectCount, hostQueryReset, imagelessFramebuffer, runtimeDescriptorArray, samplerFilterMinmax, samplerMirrorClampToEdge, scalarBlockLayout, separateDepthStencilLayouts, shaderBufferInt64Atomics, shaderFloat16, shaderInputAttachmentArrayDynamicIndexing, shaderInputAttachmentArrayNonUniformIndexing, shaderInt8, shaderOutputLayer, shaderOutputViewportIndex, shaderSampledImageArrayNonUniformIndexing, shaderSharedInt64Atomics, shaderStorageBufferArrayNonUniformIndexing, shaderStorageImageArrayNonUniformIndexing, shaderStorageTexelBufferArrayDynamicIndexing, shaderStorageTexelBufferArrayNonUniformIndexing, shaderSubgroupExtendedTypes, shaderUniformBufferArrayNonUniformIndexing, shaderUniformTexelBufferArrayDynamicIndexing, shaderUniformTexelBufferArrayNonUniformIndexing, storageBuffer8BitAccess, storagePushConstant8, subgroupBroadcastDynamicId, timelineSemaphore, uniformAndStorageBuffer8BitAccess, uniformBufferStandardLayout, vulkanMemoryModel, vulkanMemoryModelAvailabilityVisibilityChains, vulkanMemoryModelDeviceScope.
      Overrides:
      hashCode in class Object
      Returns:
      hashCode value
    • toString

      public String toString()
      Prints the immutable value VulkanPhysicalDeviceFeatures12 with attribute values.
      Overrides:
      toString in class Object
      Returns:
      A string representation of the value
    • copyOf

      Creates an immutable copy of a VulkanPhysicalDeviceFeatures12Type value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
      Parameters:
      instance - The instance to copy
      Returns:
      A copied immutable VulkanPhysicalDeviceFeatures12 instance
    • builder

      public static VulkanPhysicalDeviceFeatures12.Builder builder()
      Creates a builder for VulkanPhysicalDeviceFeatures12.
       VulkanPhysicalDeviceFeatures12.builder()
          .setBufferDeviceAddress(boolean) // optional bufferDeviceAddress
          .setBufferDeviceAddressCaptureReplay(boolean) // optional bufferDeviceAddressCaptureReplay
          .setBufferDeviceAddressMultiDevice(boolean) // optional bufferDeviceAddressMultiDevice
          .setDescriptorBindingPartiallyBound(boolean) // optional descriptorBindingPartiallyBound
          .setDescriptorBindingSampledImageUpdateAfterBind(boolean) // optional descriptorBindingSampledImageUpdateAfterBind
          .setDescriptorBindingStorageBufferUpdateAfterBind(boolean) // optional descriptorBindingStorageBufferUpdateAfterBind
          .setDescriptorBindingStorageImageUpdateAfterBind(boolean) // optional descriptorBindingStorageImageUpdateAfterBind
          .setDescriptorBindingStorageTexelBufferUpdateAfterBind(boolean) // optional descriptorBindingStorageTexelBufferUpdateAfterBind
          .setDescriptorBindingUniformBufferUpdateAfterBind(boolean) // optional descriptorBindingUniformBufferUpdateAfterBind
          .setDescriptorBindingUniformTexelBufferUpdateAfterBind(boolean) // optional descriptorBindingUniformTexelBufferUpdateAfterBind
          .setDescriptorBindingUpdateUnusedWhilePending(boolean) // optional descriptorBindingUpdateUnusedWhilePending
          .setDescriptorBindingVariableDescriptorCount(boolean) // optional descriptorBindingVariableDescriptorCount
          .setDescriptorIndexing(boolean) // optional descriptorIndexing
          .setDrawIndirectCount(boolean) // optional drawIndirectCount
          .setHostQueryReset(boolean) // optional hostQueryReset
          .setImagelessFramebuffer(boolean) // optional imagelessFramebuffer
          .setRuntimeDescriptorArray(boolean) // optional runtimeDescriptorArray
          .setSamplerFilterMinmax(boolean) // optional samplerFilterMinmax
          .setSamplerMirrorClampToEdge(boolean) // optional samplerMirrorClampToEdge
          .setScalarBlockLayout(boolean) // optional scalarBlockLayout
          .setSeparateDepthStencilLayouts(boolean) // optional separateDepthStencilLayouts
          .setShaderBufferInt64Atomics(boolean) // optional shaderBufferInt64Atomics
          .setShaderFloat16(boolean) // optional shaderFloat16
          .setShaderInputAttachmentArrayDynamicIndexing(boolean) // optional shaderInputAttachmentArrayDynamicIndexing
          .setShaderInputAttachmentArrayNonUniformIndexing(boolean) // optional shaderInputAttachmentArrayNonUniformIndexing
          .setShaderInt8(boolean) // optional shaderInt8
          .setShaderOutputLayer(boolean) // optional shaderOutputLayer
          .setShaderOutputViewportIndex(boolean) // optional shaderOutputViewportIndex
          .setShaderSampledImageArrayNonUniformIndexing(boolean) // optional shaderSampledImageArrayNonUniformIndexing
          .setShaderSharedInt64Atomics(boolean) // optional shaderSharedInt64Atomics
          .setShaderStorageBufferArrayNonUniformIndexing(boolean) // optional shaderStorageBufferArrayNonUniformIndexing
          .setShaderStorageImageArrayNonUniformIndexing(boolean) // optional shaderStorageImageArrayNonUniformIndexing
          .setShaderStorageTexelBufferArrayDynamicIndexing(boolean) // optional shaderStorageTexelBufferArrayDynamicIndexing
          .setShaderStorageTexelBufferArrayNonUniformIndexing(boolean) // optional shaderStorageTexelBufferArrayNonUniformIndexing
          .setShaderSubgroupExtendedTypes(boolean) // optional shaderSubgroupExtendedTypes
          .setShaderUniformBufferArrayNonUniformIndexing(boolean) // optional shaderUniformBufferArrayNonUniformIndexing
          .setShaderUniformTexelBufferArrayDynamicIndexing(boolean) // optional shaderUniformTexelBufferArrayDynamicIndexing
          .setShaderUniformTexelBufferArrayNonUniformIndexing(boolean) // optional shaderUniformTexelBufferArrayNonUniformIndexing
          .setStorageBuffer8BitAccess(boolean) // optional storageBuffer8BitAccess
          .setStoragePushConstant8(boolean) // optional storagePushConstant8
          .setSubgroupBroadcastDynamicId(boolean) // optional subgroupBroadcastDynamicId
          .setTimelineSemaphore(boolean) // optional timelineSemaphore
          .setUniformAndStorageBuffer8BitAccess(boolean) // optional uniformAndStorageBuffer8BitAccess
          .setUniformBufferStandardLayout(boolean) // optional uniformBufferStandardLayout
          .setVulkanMemoryModel(boolean) // optional vulkanMemoryModel
          .setVulkanMemoryModelAvailabilityVisibilityChains(boolean) // optional vulkanMemoryModelAvailabilityVisibilityChains
          .setVulkanMemoryModelDeviceScope(boolean) // optional vulkanMemoryModelDeviceScope
          .build();
       
      Returns:
      A new VulkanPhysicalDeviceFeatures12 builder