# Class VulkanPhysicalDeviceFeatures13.Builder

java.lang.Object
com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures13.Builder

Enclosing class:
  `VulkanPhysicalDeviceFeatures13`

public static final class VulkanPhysicalDeviceFeatures13.Builder extends Object
Builds instances of type `VulkanPhysicalDeviceFeatures13`. Initialize attributes and then invoke the `build()` method to create an immutable instance.

`Builder` is not thread-safe and generally should not be stored in a field or collection, but instead used immediately to create instances.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `VulkanPhysicalDeviceFeatures13`
  `build()`
  Builds a new `VulkanPhysicalDeviceFeatures13`.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `from(VulkanPhysicalDeviceFeatures13Type instance)`
  Fill a builder with attribute values from the provided `VulkanPhysicalDeviceFeatures13Type` instance.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setComputeFullSubgroups(boolean computeFullSubgroups)`
  Initializes the value for the `computeFullSubgroups` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setDescriptorBindingInlineUniformBlockUpdateAfterBind(boolean descriptorBindingInlineUniformBlockUpdateAfterBind)`
  Initializes the value for the `descriptorBindingInlineUniformBlockUpdateAfterBind` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setDynamicRendering(boolean dynamicRendering)`
  Initializes the value for the `dynamicRendering` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setInlineUniformBlock(boolean inlineUniformBlock)`
  Initializes the value for the `inlineUniformBlock` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setMaintenance4(boolean maintenance4)`
  Initializes the value for the `maintenance4` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setPipelineCreationCacheControl(boolean pipelineCreationCacheControl)`
  Initializes the value for the `pipelineCreationCacheControl` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setPrivateData(boolean privateData)`
  Initializes the value for the `privateData` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setRobustImageAccess(boolean robustImageAccess)`
  Initializes the value for the `robustImageAccess` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setShaderDemoteToHelperInvocation(boolean shaderDemoteToHelperInvocation)`
  Initializes the value for the `shaderDemoteToHelperInvocation` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setShaderIntegerDotProduct(boolean shaderIntegerDotProduct)`
  Initializes the value for the `shaderIntegerDotProduct` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setShaderTerminateInvocation(boolean shaderTerminateInvocation)`
  Initializes the value for the `shaderTerminateInvocation` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setShaderZeroInitializeWorkgroupMemory(boolean shaderZeroInitializeWorkgroupMemory)`
  Initializes the value for the `shaderZeroInitializeWorkgroupMemory` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setSubgroupSizeControl(boolean subgroupSizeControl)`
  Initializes the value for the `subgroupSizeControl` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setSynchronization2(boolean synchronization2)`
  Initializes the value for the `synchronization2` attribute.
  `final VulkanPhysicalDeviceFeatures13.Builder`
  `setTextureCompressionASTC_HDR(boolean textureCompressionASTC_HDR)`
  Initializes the value for the `textureCompressionASTC_HDR` attribute.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### from

    public final VulkanPhysicalDeviceFeatures13.Builder from(VulkanPhysicalDeviceFeatures13Type instance)
    Fill a builder with attribute values from the provided `VulkanPhysicalDeviceFeatures13Type` instance. Regular attribute values will be replaced with those from the given instance. Absent optional values will not replace present values.
    Parameters:
      `instance` - The instance from which to copy values
    Returns:
      `this` builder for use in a chained invocation

  - ### setRobustImageAccess

    public final VulkanPhysicalDeviceFeatures13.Builder setRobustImageAccess(boolean robustImageAccess)
    Initializes the value for the `robustImageAccess` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `robustImageAccess`.

    Parameters:
      `robustImageAccess` - The value for robustImageAccess
    Returns:
      `this` builder for use in a chained invocation

  - ### setInlineUniformBlock

    public final VulkanPhysicalDeviceFeatures13.Builder setInlineUniformBlock(boolean inlineUniformBlock)
    Initializes the value for the `inlineUniformBlock` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `inlineUniformBlock`.

    Parameters:
      `inlineUniformBlock` - The value for inlineUniformBlock
    Returns:
      `this` builder for use in a chained invocation

  - ### setDescriptorBindingInlineUniformBlockUpdateAfterBind

    public final VulkanPhysicalDeviceFeatures13.Builder setDescriptorBindingInlineUniformBlockUpdateAfterBind(boolean descriptorBindingInlineUniformBlockUpdateAfterBind)
    Initializes the value for the `descriptorBindingInlineUniformBlockUpdateAfterBind` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `descriptorBindingInlineUniformBlockUpdateAfterBind`.

    Parameters:
      `descriptorBindingInlineUniformBlockUpdateAfterBind` - The value for descriptorBindingInlineUniformBlockUpdateAfterBind
    Returns:
      `this` builder for use in a chained invocation

  - ### setPipelineCreationCacheControl

    public final VulkanPhysicalDeviceFeatures13.Builder setPipelineCreationCacheControl(boolean pipelineCreationCacheControl)
    Initializes the value for the `pipelineCreationCacheControl` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `pipelineCreationCacheControl`.

    Parameters:
      `pipelineCreationCacheControl` - The value for pipelineCreationCacheControl
    Returns:
      `this` builder for use in a chained invocation

  - ### setPrivateData

    public final VulkanPhysicalDeviceFeatures13.Builder setPrivateData(boolean privateData)
    Initializes the value for the `privateData` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `privateData`.

    Parameters:
      `privateData` - The value for privateData
    Returns:
      `this` builder for use in a chained invocation

  - ### setShaderDemoteToHelperInvocation

    public final VulkanPhysicalDeviceFeatures13.Builder setShaderDemoteToHelperInvocation(boolean shaderDemoteToHelperInvocation)
    Initializes the value for the `shaderDemoteToHelperInvocation` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `shaderDemoteToHelperInvocation`.

    Parameters:
      `shaderDemoteToHelperInvocation` - The value for shaderDemoteToHelperInvocation
    Returns:
      `this` builder for use in a chained invocation

  - ### setShaderTerminateInvocation

    public final VulkanPhysicalDeviceFeatures13.Builder setShaderTerminateInvocation(boolean shaderTerminateInvocation)
    Initializes the value for the `shaderTerminateInvocation` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `shaderTerminateInvocation`.

    Parameters:
      `shaderTerminateInvocation` - The value for shaderTerminateInvocation
    Returns:
      `this` builder for use in a chained invocation

  - ### setSubgroupSizeControl

    public final VulkanPhysicalDeviceFeatures13.Builder setSubgroupSizeControl(boolean subgroupSizeControl)
    Initializes the value for the `subgroupSizeControl` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `subgroupSizeControl`.

    Parameters:
      `subgroupSizeControl` - The value for subgroupSizeControl
    Returns:
      `this` builder for use in a chained invocation

  - ### setComputeFullSubgroups

    public final VulkanPhysicalDeviceFeatures13.Builder setComputeFullSubgroups(boolean computeFullSubgroups)
    Initializes the value for the `computeFullSubgroups` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `computeFullSubgroups`.

    Parameters:
      `computeFullSubgroups` - The value for computeFullSubgroups
    Returns:
      `this` builder for use in a chained invocation

  - ### setSynchronization2

    public final VulkanPhysicalDeviceFeatures13.Builder setSynchronization2(boolean synchronization2)
    Initializes the value for the `synchronization2` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `synchronization2`.

    Parameters:
      `synchronization2` - The value for synchronization2
    Returns:
      `this` builder for use in a chained invocation

  - ### setTextureCompressionASTC_HDR

    public final VulkanPhysicalDeviceFeatures13.Builder setTextureCompressionASTC_HDR(boolean textureCompressionASTC_HDR)
    Initializes the value for the `textureCompressionASTC_HDR` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `textureCompressionASTC_HDR`.

    Parameters:
      `textureCompressionASTC_HDR` - The value for textureCompressionASTC_HDR
    Returns:
      `this` builder for use in a chained invocation

  - ### setShaderZeroInitializeWorkgroupMemory

    public final VulkanPhysicalDeviceFeatures13.Builder setShaderZeroInitializeWorkgroupMemory(boolean shaderZeroInitializeWorkgroupMemory)
    Initializes the value for the `shaderZeroInitializeWorkgroupMemory` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `shaderZeroInitializeWorkgroupMemory`.

    Parameters:
      `shaderZeroInitializeWorkgroupMemory` - The value for shaderZeroInitializeWorkgroupMemory
    Returns:
      `this` builder for use in a chained invocation

  - ### setDynamicRendering

    public final VulkanPhysicalDeviceFeatures13.Builder setDynamicRendering(boolean dynamicRendering)
    Initializes the value for the `dynamicRendering` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `dynamicRendering`.

    Parameters:
      `dynamicRendering` - The value for dynamicRendering
    Returns:
      `this` builder for use in a chained invocation

  - ### setShaderIntegerDotProduct

    public final VulkanPhysicalDeviceFeatures13.Builder setShaderIntegerDotProduct(boolean shaderIntegerDotProduct)
    Initializes the value for the `shaderIntegerDotProduct` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `shaderIntegerDotProduct`.

    Parameters:
      `shaderIntegerDotProduct` - The value for shaderIntegerDotProduct
    Returns:
      `this` builder for use in a chained invocation

  - ### setMaintenance4

    public final VulkanPhysicalDeviceFeatures13.Builder setMaintenance4(boolean maintenance4)
    Initializes the value for the `maintenance4` attribute.

    If not set, this attribute will have a default value as returned by the initializer of `maintenance4`.

    Parameters:
      `maintenance4` - The value for maintenance4
    Returns:
      `this` builder for use in a chained invocation

  - ### build

    public VulkanPhysicalDeviceFeatures13 build()
    Builds a new `VulkanPhysicalDeviceFeatures13`.
    Returns:
      An immutable instance of VulkanPhysicalDeviceFeatures13
    Throws:
      `IllegalStateException` - if any required attributes are missing