# Class VulkanPhysicalDeviceFeatures14

java.lang.Object
com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures14

All Implemented Interfaces:
  `VulkanPhysicalDeviceFeatures14Type`

public final class VulkanPhysicalDeviceFeatures14 extends Object implements VulkanPhysicalDeviceFeatures14Type
The features supported by a physical Vulkan 1.4 device.

See Also:
  - "VkPhysicalDeviceVulkan14Features"

- ## Nested Class Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `bresenhamLines()`
  Indicates whether the implementation supports the VK_LINE_RASTERIZATION_MODE_BRESENHAM line rasterization mode.
  `static VulkanPhysicalDeviceFeatures14.Builder`
  `builder()`
  Creates a builder for `VulkanPhysicalDeviceFeatures14`.
  `static VulkanPhysicalDeviceFeatures14`
  `copyOf(VulkanPhysicalDeviceFeatures14Type instance)`
  Creates an immutable copy of a `VulkanPhysicalDeviceFeatures14Type` value.
  `boolean`
  `dynamicRenderingLocalRead()`
  Indicates whether the implementation supports the VK_RENDERING_LOCAL_READ_LINEAR_READ_ATTACHMENT_FB_READ flag.
  `boolean`
  `equals(Object another)`
  This instance is equal to all instances of `VulkanPhysicalDeviceFeatures14` that have equal attribute values.
  `boolean`
  `globalPriorityQuery()`
  Indicates whether the implementation supports the ability to query global queue priorities.
  `int`
  `hashCode()`
  Computes a hash code from attributes: `globalPriorityQuery`, `shaderSubgroupRotate`, `shaderSubgroupRotateClustered`, `shaderFloatControls2`, `shaderExpectAssume`, `rectangularLines`, `bresenhamLines`, `smoothLines`, `stippledRectangularLines`, `stippledSmoothLines`, `vertexAttributeInstanceRateDivisor`, `vertexAttributeInstanceRateZeroDivisor`, `indexTypeUint8`, `dynamicRenderingLocalRead`, `maintenance5`, `maintenance6`, `pipelineRobustness`, `hostImageCopy`, `pushDescriptor`.
  `boolean`
  `hostImageCopy()`
  Indicates whether the implementation supports host image copy.
  `boolean`
  `indexTypeUint8()`
  Indicates whether the VK_INDEX_TYPE_UINT8 index type is supported.
  `boolean`
  `maintenance5()`
  Indicates whether the implementation supports the ability to query maintenance5 features.
  `boolean`
  `maintenance6()`
  Indicates whether the implementation supports the ability to query maintenance6 features.
  `boolean`
  `pipelineRobustness()`
  Indicates whether the implementation supports pipelineRobustness.
  `boolean`
  `pushDescriptor()`
  Indicates whether the implementation supports push descriptors.
  `boolean`
  `rectangularLines()`
  Indicates whether the implementation supports the VK_LINE_RASTERIZATION_MODE_RECTANGULAR line rasterization mode.
  `boolean`
  `shaderExpectAssume()`
  Indicates whether shader modules can declare the Assume capability.
  `boolean`
  `shaderFloatControls2()`
  Indicates whether shader modules can declare the FloatControls2 capability.
  `boolean`
  `shaderSubgroupRotate()`
  Indicates whether shader modules can declare the GroupNonUniformRotateKHR capability.
  `boolean`
  `shaderSubgroupRotateClustered()`
  Indicates whether shader modules can declare the GroupNonUniformClusteredRotateKHR capability.
  `boolean`
  `smoothLines()`
  Indicates whether the implementation supports smooth lines with a functionally correct and deterministic rasterization coverage mask.
  `boolean`
  `stippledRectangularLines()`
  Indicates whether the implementation supports stippled rectangular lines with theVK_LINE_RASTERIZATION_MODE_RECTANGULAR line rasterization mode.
  `boolean`
  `stippledSmoothLines()`
  Indicates whether the implementation supports stippled smooth lines.
  `String`
  `toString()`
  Prints the immutable value `VulkanPhysicalDeviceFeatures14` with attribute values.
  `boolean`
  `vertexAttributeInstanceRateDivisor()`
  Indicates whether the implementation supports non-zero divisor values for vertex attribute fetch with divisor.
  `boolean`
  `vertexAttributeInstanceRateZeroDivisor()`
  Indicates whether the implementation supports a divisor value of zero for vertex attribute fetch with divisor.
  `final VulkanPhysicalDeviceFeatures14`
  `withBresenhamLines(boolean value)`
  Copy the current immutable object by setting a value for the `bresenhamLines` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withDynamicRenderingLocalRead(boolean value)`
  Copy the current immutable object by setting a value for the `dynamicRenderingLocalRead` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withGlobalPriorityQuery(boolean value)`
  Copy the current immutable object by setting a value for the `globalPriorityQuery` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withHostImageCopy(boolean value)`
  Copy the current immutable object by setting a value for the `hostImageCopy` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withIndexTypeUint8(boolean value)`
  Copy the current immutable object by setting a value for the `indexTypeUint8` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withMaintenance5(boolean value)`
  Copy the current immutable object by setting a value for the `maintenance5` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withMaintenance6(boolean value)`
  Copy the current immutable object by setting a value for the `maintenance6` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withPipelineRobustness(boolean value)`
  Copy the current immutable object by setting a value for the `pipelineRobustness` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withPushDescriptor(boolean value)`
  Copy the current immutable object by setting a value for the `pushDescriptor` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withRectangularLines(boolean value)`
  Copy the current immutable object by setting a value for the `rectangularLines` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withShaderExpectAssume(boolean value)`
  Copy the current immutable object by setting a value for the `shaderExpectAssume` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withShaderFloatControls2(boolean value)`
  Copy the current immutable object by setting a value for the `shaderFloatControls2` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withShaderSubgroupRotate(boolean value)`
  Copy the current immutable object by setting a value for the `shaderSubgroupRotate` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withShaderSubgroupRotateClustered(boolean value)`
  Copy the current immutable object by setting a value for the `shaderSubgroupRotateClustered` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withSmoothLines(boolean value)`
  Copy the current immutable object by setting a value for the `smoothLines` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withStippledRectangularLines(boolean value)`
  Copy the current immutable object by setting a value for the `stippledRectangularLines` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withStippledSmoothLines(boolean value)`
  Copy the current immutable object by setting a value for the `stippledSmoothLines` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withVertexAttributeInstanceRateDivisor(boolean value)`
  Copy the current immutable object by setting a value for the `vertexAttributeInstanceRateDivisor` attribute.
  `final VulkanPhysicalDeviceFeatures14`
  `withVertexAttributeInstanceRateZeroDivisor(boolean value)`
  Copy the current immutable object by setting a value for the `vertexAttributeInstanceRateZeroDivisor` attribute.

  ### Methods inherited from class Object

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

- ## Method Details

  - ### globalPriorityQuery

    public boolean globalPriorityQuery()
    Indicates whether the implementation supports the ability to query global queue priorities.
    Specified by:
      `globalPriorityQuery` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### shaderSubgroupRotate

    public boolean shaderSubgroupRotate()
    Indicates whether shader modules can declare the GroupNonUniformRotateKHR capability.
    Specified by:
      `shaderSubgroupRotate` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### shaderSubgroupRotateClustered

    public boolean shaderSubgroupRotateClustered()
    Indicates whether shader modules can declare the GroupNonUniformClusteredRotateKHR capability.
    Specified by:
      `shaderSubgroupRotateClustered` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### shaderFloatControls2

    public boolean shaderFloatControls2()
    Indicates whether shader modules can declare the FloatControls2 capability.
    Specified by:
      `shaderFloatControls2` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### shaderExpectAssume

    public boolean shaderExpectAssume()
    Indicates whether shader modules can declare the Assume capability.
    Specified by:
      `shaderExpectAssume` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### rectangularLines

    public boolean rectangularLines()
    Indicates whether the implementation supports the VK_LINE_RASTERIZATION_MODE_RECTANGULAR line rasterization mode.
    Specified by:
      `rectangularLines` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### bresenhamLines

    public boolean bresenhamLines()
    Indicates whether the implementation supports the VK_LINE_RASTERIZATION_MODE_BRESENHAM line rasterization mode.
    Specified by:
      `bresenhamLines` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### smoothLines

    public boolean smoothLines()
    Indicates whether the implementation supports smooth lines with a functionally correct and deterministic rasterization coverage mask.
    Specified by:
      `smoothLines` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### stippledRectangularLines

    public boolean stippledRectangularLines()
    Indicates whether the implementation supports stippled rectangular lines with theVK_LINE_RASTERIZATION_MODE_RECTANGULAR line rasterization mode.
    Specified by:
      `stippledRectangularLines` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### stippledSmoothLines

    public boolean stippledSmoothLines()
    Indicates whether the implementation supports stippled smooth lines.
    Specified by:
      `stippledSmoothLines` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### vertexAttributeInstanceRateDivisor

    public boolean vertexAttributeInstanceRateDivisor()
    Indicates whether the implementation supports non-zero divisor values for vertex attribute fetch with divisor.
    Specified by:
      `vertexAttributeInstanceRateDivisor` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### vertexAttributeInstanceRateZeroDivisor

    public boolean vertexAttributeInstanceRateZeroDivisor()
    Indicates whether the implementation supports a divisor value of zero for vertex attribute fetch with divisor.
    Specified by:
      `vertexAttributeInstanceRateZeroDivisor` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### indexTypeUint8

    public boolean indexTypeUint8()
    Indicates whether the VK_INDEX_TYPE_UINT8 index type is supported.
    Specified by:
      `indexTypeUint8` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### dynamicRenderingLocalRead

    public boolean dynamicRenderingLocalRead()
    Indicates whether the implementation supports the VK_RENDERING_LOCAL_READ_LINEAR_READ_ATTACHMENT_FB_READ flag.
    Specified by:
      `dynamicRenderingLocalRead` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### maintenance5

    public boolean maintenance5()
    Indicates whether the implementation supports the ability to query maintenance5 features.
    Specified by:
      `maintenance5` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### maintenance6

    public boolean maintenance6()
    Indicates whether the implementation supports the ability to query maintenance6 features.
    Specified by:
      `maintenance6` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### pipelineRobustness

    public boolean pipelineRobustness()
    Indicates whether the implementation supports pipelineRobustness.
    Specified by:
      `pipelineRobustness` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### hostImageCopy

    public boolean hostImageCopy()
    Indicates whether the implementation supports host image copy.
    Specified by:
      `hostImageCopy` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### pushDescriptor

    public boolean pushDescriptor()
    Indicates whether the implementation supports push descriptors.
    Specified by:
      `pushDescriptor` in interface `VulkanPhysicalDeviceFeatures14Type`
    Returns:
      `true` if supported

  - ### withGlobalPriorityQuery

    public final VulkanPhysicalDeviceFeatures14 withGlobalPriorityQuery(boolean value)
    Copy the current immutable object by setting a value for the `globalPriorityQuery` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for globalPriorityQuery
    Returns:
      A modified copy or the `this` object

  - ### withShaderSubgroupRotate

    public final VulkanPhysicalDeviceFeatures14 withShaderSubgroupRotate(boolean value)
    Copy the current immutable object by setting a value for the `shaderSubgroupRotate` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for shaderSubgroupRotate
    Returns:
      A modified copy or the `this` object

  - ### withShaderSubgroupRotateClustered

    public final VulkanPhysicalDeviceFeatures14 withShaderSubgroupRotateClustered(boolean value)
    Copy the current immutable object by setting a value for the `shaderSubgroupRotateClustered` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for shaderSubgroupRotateClustered
    Returns:
      A modified copy or the `this` object

  - ### withShaderFloatControls2

    public final VulkanPhysicalDeviceFeatures14 withShaderFloatControls2(boolean value)
    Copy the current immutable object by setting a value for the `shaderFloatControls2` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for shaderFloatControls2
    Returns:
      A modified copy or the `this` object

  - ### withShaderExpectAssume

    public final VulkanPhysicalDeviceFeatures14 withShaderExpectAssume(boolean value)
    Copy the current immutable object by setting a value for the `shaderExpectAssume` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for shaderExpectAssume
    Returns:
      A modified copy or the `this` object

  - ### withRectangularLines

    public final VulkanPhysicalDeviceFeatures14 withRectangularLines(boolean value)
    Copy the current immutable object by setting a value for the `rectangularLines` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for rectangularLines
    Returns:
      A modified copy or the `this` object

  - ### withBresenhamLines

    public final VulkanPhysicalDeviceFeatures14 withBresenhamLines(boolean value)
    Copy the current immutable object by setting a value for the `bresenhamLines` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for bresenhamLines
    Returns:
      A modified copy or the `this` object

  - ### withSmoothLines

    public final VulkanPhysicalDeviceFeatures14 withSmoothLines(boolean value)
    Copy the current immutable object by setting a value for the `smoothLines` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for smoothLines
    Returns:
      A modified copy or the `this` object

  - ### withStippledRectangularLines

    public final VulkanPhysicalDeviceFeatures14 withStippledRectangularLines(boolean value)
    Copy the current immutable object by setting a value for the `stippledRectangularLines` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for stippledRectangularLines
    Returns:
      A modified copy or the `this` object

  - ### withStippledSmoothLines

    public final VulkanPhysicalDeviceFeatures14 withStippledSmoothLines(boolean value)
    Copy the current immutable object by setting a value for the `stippledSmoothLines` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for stippledSmoothLines
    Returns:
      A modified copy or the `this` object

  - ### withVertexAttributeInstanceRateDivisor

    public final VulkanPhysicalDeviceFeatures14 withVertexAttributeInstanceRateDivisor(boolean value)
    Copy the current immutable object by setting a value for the `vertexAttributeInstanceRateDivisor` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for vertexAttributeInstanceRateDivisor
    Returns:
      A modified copy or the `this` object

  - ### withVertexAttributeInstanceRateZeroDivisor

    public final VulkanPhysicalDeviceFeatures14 withVertexAttributeInstanceRateZeroDivisor(boolean value)
    Copy the current immutable object by setting a value for the `vertexAttributeInstanceRateZeroDivisor` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for vertexAttributeInstanceRateZeroDivisor
    Returns:
      A modified copy or the `this` object

  - ### withIndexTypeUint8

    public final VulkanPhysicalDeviceFeatures14 withIndexTypeUint8(boolean value)
    Copy the current immutable object by setting a value for the `indexTypeUint8` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for indexTypeUint8
    Returns:
      A modified copy or the `this` object

  - ### withDynamicRenderingLocalRead

    public final VulkanPhysicalDeviceFeatures14 withDynamicRenderingLocalRead(boolean value)
    Copy the current immutable object by setting a value for the `dynamicRenderingLocalRead` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for dynamicRenderingLocalRead
    Returns:
      A modified copy or the `this` object

  - ### withMaintenance5

    public final VulkanPhysicalDeviceFeatures14 withMaintenance5(boolean value)
    Copy the current immutable object by setting a value for the `maintenance5` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for maintenance5
    Returns:
      A modified copy or the `this` object

  - ### withMaintenance6

    public final VulkanPhysicalDeviceFeatures14 withMaintenance6(boolean value)
    Copy the current immutable object by setting a value for the `maintenance6` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for maintenance6
    Returns:
      A modified copy or the `this` object

  - ### withPipelineRobustness

    public final VulkanPhysicalDeviceFeatures14 withPipelineRobustness(boolean value)
    Copy the current immutable object by setting a value for the `pipelineRobustness` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for pipelineRobustness
    Returns:
      A modified copy or the `this` object

  - ### withHostImageCopy

    public final VulkanPhysicalDeviceFeatures14 withHostImageCopy(boolean value)
    Copy the current immutable object by setting a value for the `hostImageCopy` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for hostImageCopy
    Returns:
      A modified copy or the `this` object

  - ### withPushDescriptor

    public final VulkanPhysicalDeviceFeatures14 withPushDescriptor(boolean value)
    Copy the current immutable object by setting a value for the `pushDescriptor` attribute. A value equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for pushDescriptor
    Returns:
      A modified copy or the `this` object

  - ### equals

    public boolean equals(Object another)
    This instance is equal to all instances of `VulkanPhysicalDeviceFeatures14` 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: `globalPriorityQuery`, `shaderSubgroupRotate`, `shaderSubgroupRotateClustered`, `shaderFloatControls2`, `shaderExpectAssume`, `rectangularLines`, `bresenhamLines`, `smoothLines`, `stippledRectangularLines`, `stippledSmoothLines`, `vertexAttributeInstanceRateDivisor`, `vertexAttributeInstanceRateZeroDivisor`, `indexTypeUint8`, `dynamicRenderingLocalRead`, `maintenance5`, `maintenance6`, `pipelineRobustness`, `hostImageCopy`, `pushDescriptor`.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      hashCode value

  - ### toString

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

  - ### copyOf

    public static VulkanPhysicalDeviceFeatures14 copyOf(VulkanPhysicalDeviceFeatures14Type instance)
    Creates an immutable copy of a `VulkanPhysicalDeviceFeatures14Type` 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 VulkanPhysicalDeviceFeatures14 instance

  - ### builder

    public static VulkanPhysicalDeviceFeatures14.Builder builder()
    Creates a builder for `VulkanPhysicalDeviceFeatures14`.

        VulkanPhysicalDeviceFeatures14.builder()
           .setGlobalPriorityQuery(boolean) // optional globalPriorityQuery
           .setShaderSubgroupRotate(boolean) // optional shaderSubgroupRotate
           .setShaderSubgroupRotateClustered(boolean) // optional shaderSubgroupRotateClustered
           .setShaderFloatControls2(boolean) // optional shaderFloatControls2
           .setShaderExpectAssume(boolean) // optional shaderExpectAssume
           .setRectangularLines(boolean) // optional rectangularLines
           .setBresenhamLines(boolean) // optional bresenhamLines
           .setSmoothLines(boolean) // optional smoothLines
           .setStippledRectangularLines(boolean) // optional stippledRectangularLines
           .setStippledSmoothLines(boolean) // optional stippledSmoothLines
           .setVertexAttributeInstanceRateDivisor(boolean) // optional vertexAttributeInstanceRateDivisor
           .setVertexAttributeInstanceRateZeroDivisor(boolean) // optional vertexAttributeInstanceRateZeroDivisor
           .setIndexTypeUint8(boolean) // optional indexTypeUint8
           .setDynamicRenderingLocalRead(boolean) // optional dynamicRenderingLocalRead
           .setMaintenance5(boolean) // optional maintenance5
           .setMaintenance6(boolean) // optional maintenance6
           .setPipelineRobustness(boolean) // optional pipelineRobustness
           .setHostImageCopy(boolean) // optional hostImageCopy
           .setPushDescriptor(boolean) // optional pushDescriptor
           .build();

    Returns:
      A new VulkanPhysicalDeviceFeatures14 builder