# 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"

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `VulkanPhysicalDeviceFeatures12.Builder`
  Builds instances of type `VulkanPhysicalDeviceFeatures12`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `bufferDeviceAddress()`
  bufferDeviceAddress indicates that the implementation supports accessing buffer memory in shaders as storage buffers via an address queried from vkGetBufferDeviceAddress.
  `boolean`
  `bufferDeviceAddressCaptureReplay()`
  bufferDeviceAddressCaptureReplay indicates that the implementation supports saving and reusing buffer and device addresses, e.g.
  `boolean`
  `bufferDeviceAddressMultiDevice()`
  bufferDeviceAddressMultiDevice indicates that the implementation supports the bufferDeviceAddress , rayTracingPipeline and rayQuery features for logical devices created with multiple physical devices.
  `static VulkanPhysicalDeviceFeatures12.Builder`
  `builder()`
  Creates a builder for `VulkanPhysicalDeviceFeatures12`.
  `static VulkanPhysicalDeviceFeatures12`
  `copyOf(VulkanPhysicalDeviceFeatures12Type instance)`
  Creates an immutable copy of a `VulkanPhysicalDeviceFeatures12Type` value.
  `boolean`
  `descriptorBindingPartiallyBound()`
  descriptorBindingPartiallyBound indicates whether the implementation supports statically using a descriptor set binding in which some descriptors are not valid.
  `boolean`
  `descriptorBindingSampledImageUpdateAfterBind()`
  descriptorBindingSampledImageUpdateAfterBind indicates whether the implementation supports updating sampled image descriptors after a set is bound.
  `boolean`
  `descriptorBindingStorageBufferUpdateAfterBind()`
  descriptorBindingStorageBufferUpdateAfterBind indicates whether the implementation supports updating storage buffer descriptors after a set is bound.
  `boolean`
  `descriptorBindingStorageImageUpdateAfterBind()`
  descriptorBindingStorageImageUpdateAfterBind indicates whether the implementation supports updating storage image descriptors after a set is bound.
  `boolean`
  `descriptorBindingStorageTexelBufferUpdateAfterBind()`
  descriptorBindingStorageTexelBufferUpdateAfterBind indicates whether the implementation supports updating storage texel buffer descriptors after a set is bound.
  `boolean`
  `descriptorBindingUniformBufferUpdateAfterBind()`
  descriptorBindingUniformBufferUpdateAfterBind indicates whether the implementation supports updating uniform buffer descriptors after a set is bound.
  `boolean`
  `descriptorBindingUniformTexelBufferUpdateAfterBind()`
  descriptorBindingUniformTexelBufferUpdateAfterBind indicates whether the implementation supports updating uniform texel buffer descriptors after a set is bound.
  `boolean`
  `descriptorBindingUpdateUnusedWhilePending()`
  descriptorBindingUpdateUnusedWhilePending indicates whether the implementation supports updating descriptors while the set is in use.
  `boolean`
  `descriptorBindingVariableDescriptorCount()`
  descriptorBindingVariableDescriptorCount indicates whether the implementation supports descriptor sets with a variable-sized last binding.
  `boolean`
  `descriptorIndexing()`
  descriptorIndexing indicates whether the implementation supports the minimum set of descriptor indexing features as described in the Feature Requirements section.
  `boolean`
  `drawIndirectCount()`
  drawIndirectCount indicates whether the implementation supports the vkCmdDrawIndirectCount and vkCmdDrawIndexedIndirectCount functions.
  `boolean`
  `equals(Object another)`
  This instance is equal to all instances of `VulkanPhysicalDeviceFeatures12` that have equal attribute values.
  `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`.
  `boolean`
  `hostQueryReset()`
  hostQueryReset indicates that the implementation supports resetting queries from the host with vkResetQueryPool.
  `boolean`
  `imagelessFramebuffer()`
  imagelessFramebuffer indicates that the implementation supports specifying the image view for attachments at render pass begin time via VkRenderPassAttachmentBeginInfo.
  `boolean`
  `runtimeDescriptorArray()`
  runtimeDescriptorArray indicates whether the implementation supports the SPIR-V RuntimeDescriptorArray capability.
  `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.
  `boolean`
  `samplerMirrorClampToEdge()`
  samplerMirrorClampToEdge indicates whether the implementation supports the VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode.
  `boolean`
  `scalarBlockLayout()`
  scalarBlockLayout indicates that the implementation supports the layout of resource blocks in shaders using scalar alignment.
  `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.
  `boolean`
  `shaderBufferInt64Atomics()`
  shaderBufferInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed integer atomic operations on buffers.
  `boolean`
  `shaderFloat16()`
  shaderFloat16 indicates whether 16-bit floats (halfs) are supported in shader code.
  `boolean`
  `shaderInputAttachmentArrayDynamicIndexing()`
  shaderInputAttachmentArrayDynamicIndexing indicates whether arrays of input attachments can be indexed by dynamically uniform integer expressions in shader code.
  `boolean`
  `shaderInputAttachmentArrayNonUniformIndexing()`
  shaderInputAttachmentArrayNonUniformIndexing indicates whether arrays of input attachments can be indexed by non-uniform integer expressions in shader code.
  `boolean`
  `shaderInt8()`
  shaderInt8 indicates whether 8-bit integers (signed and unsigned) are supported in shader code.
  `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.
  `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.
  `boolean`
  `shaderSampledImageArrayNonUniformIndexing()`
  shaderSampledImageArrayNonUniformIndexing indicates whether arrays of samplers or sampled images can be indexed by non-uniform integer expressions in shader code.
  `boolean`
  `shaderSharedInt64Atomics()`
  shaderSharedInt64Atomics indicates whether shaders can perform 64-bit unsigned and signed integer atomic operations on shared memory.
  `boolean`
  `shaderStorageBufferArrayNonUniformIndexing()`
  shaderStorageBufferArrayNonUniformIndexing indicates whether arrays of storage buffers can be indexed by non-uniform integer expressions in shader code.
  `boolean`
  `shaderStorageImageArrayNonUniformIndexing()`
  shaderStorageImageArrayNonUniformIndexing indicates whether arrays of storage images can be indexed by non-uniform integer expressions in shader code.
  `boolean`
  `shaderStorageTexelBufferArrayDynamicIndexing()`
  shaderStorageTexelBufferArrayDynamicIndexing indicates whether arrays of storage texel buffers can be indexed by dynamically uniform integer expressions in shader code.
  `boolean`
  `shaderStorageTexelBufferArrayNonUniformIndexing()`
  shaderStorageTexelBufferArrayNonUniformIndexing indicates whether arrays of storage texel buffers can be indexed by non-uniform integer expressions in shader code.
  `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.
  `boolean`
  `shaderUniformBufferArrayNonUniformIndexing()`
  shaderUniformBufferArrayNonUniformIndexing indicates whether arrays of uniform buffers can be indexed by non-uniform integer expressions in shader code.
  `boolean`
  `shaderUniformTexelBufferArrayDynamicIndexing()`
  shaderUniformTexelBufferArrayDynamicIndexing indicates whether arrays of uniform texel buffers can be indexed by dynamically uniform integer expressions in shader code.
  `boolean`
  `shaderUniformTexelBufferArrayNonUniformIndexing()`
  shaderUniformTexelBufferArrayNonUniformIndexing indicates whether arrays of uniform texel buffers can be indexed by non-uniform integer expressions in shader code.
  `boolean`
  `storageBuffer8BitAccess()`
  storageBuffer8BitAccess indicates whether objects in the StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer storage class with the Block decoration can have 8-bit integer members.
  `boolean`
  `storagePushConstant8()`
  storagePushConstant8 indicates whether objects in the PushConstant storage class can have 8-bit integer members.
  `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.
  `boolean`
  `timelineSemaphore()`
  timelineSemaphore indicates whether semaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE are supported.
  `String`
  `toString()`
  Prints the immutable value `VulkanPhysicalDeviceFeatures12` with attribute values.
  `boolean`
  `uniformAndStorageBuffer8BitAccess()`
  uniformAndStorageBuffer8BitAccess indicates whether objects in the Uniform storage class with the Block decoration can have 8-bit integer members.
  `boolean`
  `uniformBufferStandardLayout()`
  uniformBufferStandardLayout indicates that the implementation supports the same layouts for uniform buffers as for storage and other kinds of buffers.
  `boolean`
  `vulkanMemoryModel()`
  vulkanMemoryModel indicates whether the Vulkan Memory Model is supported, as defined in Vulkan Memory Model.
  `boolean`
  `vulkanMemoryModelAvailabilityVisibilityChains()`
  vulkanMemoryModelAvailabilityVisibilityChains indicates whether the Vulkan Memory Model can use availability and visibility chains with more than one element.
  `boolean`
  `vulkanMemoryModelDeviceScope()`
  vulkanMemoryModelDeviceScope indicates whether the Vulkan Memory Model can use Device scope synchronization.
  `final VulkanPhysicalDeviceFeatures12`
  `withBufferDeviceAddress(boolean value)`
  Copy the current immutable object by setting a value for the `bufferDeviceAddress` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withBufferDeviceAddressCaptureReplay(boolean value)`
  Copy the current immutable object by setting a value for the `bufferDeviceAddressCaptureReplay` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withBufferDeviceAddressMultiDevice(boolean value)`
  Copy the current immutable object by setting a value for the `bufferDeviceAddressMultiDevice` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDescriptorBindingPartiallyBound(boolean value)`
  Copy the current immutable object by setting a value for the `descriptorBindingPartiallyBound` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDescriptorBindingSampledImageUpdateAfterBind(boolean value)`
  Copy the current immutable object by setting a value for the `descriptorBindingSampledImageUpdateAfterBind` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDescriptorBindingStorageBufferUpdateAfterBind(boolean value)`
  Copy the current immutable object by setting a value for the `descriptorBindingStorageBufferUpdateAfterBind` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDescriptorBindingStorageImageUpdateAfterBind(boolean value)`
  Copy the current immutable object by setting a value for the `descriptorBindingStorageImageUpdateAfterBind` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDescriptorBindingStorageTexelBufferUpdateAfterBind(boolean value)`
  Copy the current immutable object by setting a value for the `descriptorBindingStorageTexelBufferUpdateAfterBind` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDescriptorBindingUniformBufferUpdateAfterBind(boolean value)`
  Copy the current immutable object by setting a value for the `descriptorBindingUniformBufferUpdateAfterBind` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDescriptorBindingUniformTexelBufferUpdateAfterBind(boolean value)`
  Copy the current immutable object by setting a value for the `descriptorBindingUniformTexelBufferUpdateAfterBind` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDescriptorBindingUpdateUnusedWhilePending(boolean value)`
  Copy the current immutable object by setting a value for the `descriptorBindingUpdateUnusedWhilePending` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDescriptorBindingVariableDescriptorCount(boolean value)`
  Copy the current immutable object by setting a value for the `descriptorBindingVariableDescriptorCount` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDescriptorIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `descriptorIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withDrawIndirectCount(boolean value)`
  Copy the current immutable object by setting a value for the `drawIndirectCount` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withHostQueryReset(boolean value)`
  Copy the current immutable object by setting a value for the `hostQueryReset` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withImagelessFramebuffer(boolean value)`
  Copy the current immutable object by setting a value for the `imagelessFramebuffer` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withRuntimeDescriptorArray(boolean value)`
  Copy the current immutable object by setting a value for the `runtimeDescriptorArray` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withSamplerFilterMinmax(boolean value)`
  Copy the current immutable object by setting a value for the `samplerFilterMinmax` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withSamplerMirrorClampToEdge(boolean value)`
  Copy the current immutable object by setting a value for the `samplerMirrorClampToEdge` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withScalarBlockLayout(boolean value)`
  Copy the current immutable object by setting a value for the `scalarBlockLayout` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withSeparateDepthStencilLayouts(boolean value)`
  Copy the current immutable object by setting a value for the `separateDepthStencilLayouts` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderBufferInt64Atomics(boolean value)`
  Copy the current immutable object by setting a value for the `shaderBufferInt64Atomics` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderFloat16(boolean value)`
  Copy the current immutable object by setting a value for the `shaderFloat16` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderInputAttachmentArrayDynamicIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `shaderInputAttachmentArrayDynamicIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderInputAttachmentArrayNonUniformIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `shaderInputAttachmentArrayNonUniformIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderInt8(boolean value)`
  Copy the current immutable object by setting a value for the `shaderInt8` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderOutputLayer(boolean value)`
  Copy the current immutable object by setting a value for the `shaderOutputLayer` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderOutputViewportIndex(boolean value)`
  Copy the current immutable object by setting a value for the `shaderOutputViewportIndex` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderSampledImageArrayNonUniformIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `shaderSampledImageArrayNonUniformIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderSharedInt64Atomics(boolean value)`
  Copy the current immutable object by setting a value for the `shaderSharedInt64Atomics` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderStorageBufferArrayNonUniformIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `shaderStorageBufferArrayNonUniformIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderStorageImageArrayNonUniformIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `shaderStorageImageArrayNonUniformIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderStorageTexelBufferArrayDynamicIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `shaderStorageTexelBufferArrayDynamicIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderStorageTexelBufferArrayNonUniformIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `shaderStorageTexelBufferArrayNonUniformIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderSubgroupExtendedTypes(boolean value)`
  Copy the current immutable object by setting a value for the `shaderSubgroupExtendedTypes` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderUniformBufferArrayNonUniformIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `shaderUniformBufferArrayNonUniformIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderUniformTexelBufferArrayDynamicIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `shaderUniformTexelBufferArrayDynamicIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withShaderUniformTexelBufferArrayNonUniformIndexing(boolean value)`
  Copy the current immutable object by setting a value for the `shaderUniformTexelBufferArrayNonUniformIndexing` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withStorageBuffer8BitAccess(boolean value)`
  Copy the current immutable object by setting a value for the `storageBuffer8BitAccess` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withStoragePushConstant8(boolean value)`
  Copy the current immutable object by setting a value for the `storagePushConstant8` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withSubgroupBroadcastDynamicId(boolean value)`
  Copy the current immutable object by setting a value for the `subgroupBroadcastDynamicId` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withTimelineSemaphore(boolean value)`
  Copy the current immutable object by setting a value for the `timelineSemaphore` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withUniformAndStorageBuffer8BitAccess(boolean value)`
  Copy the current immutable object by setting a value for the `uniformAndStorageBuffer8BitAccess` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withUniformBufferStandardLayout(boolean value)`
  Copy the current immutable object by setting a value for the `uniformBufferStandardLayout` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withVulkanMemoryModel(boolean value)`
  Copy the current immutable object by setting a value for the `vulkanMemoryModel` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withVulkanMemoryModelAvailabilityVisibilityChains(boolean value)`
  Copy the current immutable object by setting a value for the `vulkanMemoryModelAvailabilityVisibilityChains` attribute.
  `final VulkanPhysicalDeviceFeatures12`
  `withVulkanMemoryModelDeviceScope(boolean value)`
  Copy the current immutable object by setting a value for the `vulkanMemoryModelDeviceScope` attribute.

  ### Methods inherited from class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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 or 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

    public static VulkanPhysicalDeviceFeatures12 copyOf(VulkanPhysicalDeviceFeatures12Type instance)
    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