Class VulkanPhysicalDeviceFeatures13

java.lang.Object
com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures13
All Implemented Interfaces:
VulkanPhysicalDeviceFeatures13Type

public final class VulkanPhysicalDeviceFeatures13 extends Object implements VulkanPhysicalDeviceFeatures13Type
The features supported by a physical Vulkan 1.3 device.
See Also:
  • "VkPhysicalDeviceVulkan13Features"
  • Method Details

    • robustImageAccess

      public boolean robustImageAccess()
      Indicates whether image accesses are tightly bounds-checked against the dimensions of the image view. Invalid texels resulting from out of bounds image loads will be replaced as described in Texel Replacement, with either (0,0,1) or (0,0,0) values inserted for missing G, B, or A components based on the format.
      Specified by:
      robustImageAccess in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • inlineUniformBlock

      public boolean inlineUniformBlock()
      Indicates whether the implementation supports inline uniform block descriptors. If this feature is not enabled, VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK must not be used.
      Specified by:
      inlineUniformBlock in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • descriptorBindingInlineUniformBlockUpdateAfterBind

      public boolean descriptorBindingInlineUniformBlockUpdateAfterBind()
      Indicates whether the implementation supports updating inline uniform block 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_INLINE_UNIFORM_BLOCK.
      Specified by:
      descriptorBindingInlineUniformBlockUpdateAfterBind in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • pipelineCreationCacheControl

      public boolean pipelineCreationCacheControl()
      Specified by:
      pipelineCreationCacheControl in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • privateData

      public boolean privateData()
      Indicates whether the implementation supports private data.
      Specified by:
      privateData in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • shaderDemoteToHelperInvocation

      public boolean shaderDemoteToHelperInvocation()
      Indicates whether the implementation supports the SPIR-V DemoteToHelperInvocationEXT capability.
      Specified by:
      shaderDemoteToHelperInvocation in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • shaderTerminateInvocation

      public boolean shaderTerminateInvocation()
      Specifies whether the implementation supports SPIR-V modules that use the SPV_KHR_terminate_invocation extension.
      Specified by:
      shaderTerminateInvocation in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • subgroupSizeControl

      public boolean subgroupSizeControl()
      Indicates whether the implementation supports controlling shader subgroup sizes via the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag and the VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure.
      Specified by:
      subgroupSizeControl in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • computeFullSubgroups

      public boolean computeFullSubgroups()
      Indicates whether the implementation supports requiring full subgroups in compute, mesh, or task shaders via the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag.
      Specified by:
      computeFullSubgroups in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • synchronization2

      public boolean synchronization2()
      Indicates whether the implementation supports the new set of synchronization commands introduced in VK_KHR_synchronization2.
      Specified by:
      synchronization2 in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • textureCompressionASTC_HDR

      public boolean textureCompressionASTC_HDR()
      Indicates whether all of the ASTC HDR compressed texture formats are supported.
      Specified by:
      textureCompressionASTC_HDR in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • shaderZeroInitializeWorkgroupMemory

      public boolean shaderZeroInitializeWorkgroupMemory()
      Specifies whether the implementation supports initializing a variable in Workgroup storage class.
      Specified by:
      shaderZeroInitializeWorkgroupMemory in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • dynamicRendering

      public boolean dynamicRendering()
      Specifies that the implementation supports dynamic render pass instances
      Specified by:
      dynamicRendering in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • shaderIntegerDotProduct

      public boolean shaderIntegerDotProduct()
      Specifies whether shader modules can declare the DotProductInputAllKHR, DotProductInput4x8BitKHR, DotProductInput4x8BitPackedKHR and DotProductKHR capabilities.
      Specified by:
      shaderIntegerDotProduct in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • maintenance4

      public boolean maintenance4()
      Indicates that the implementation supports maintenance4.
      Specified by:
      maintenance4 in interface VulkanPhysicalDeviceFeatures13Type
      Returns:
      true if supported
    • withRobustImageAccess

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      public boolean equals(Object another)
      This instance is equal to all instances of VulkanPhysicalDeviceFeatures13 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: robustImageAccess, inlineUniformBlock, descriptorBindingInlineUniformBlockUpdateAfterBind, pipelineCreationCacheControl, privateData, shaderDemoteToHelperInvocation, shaderTerminateInvocation, subgroupSizeControl, computeFullSubgroups, synchronization2, textureCompressionASTC_HDR, shaderZeroInitializeWorkgroupMemory, dynamicRendering, shaderIntegerDotProduct, maintenance4.
      Overrides:
      hashCode in class Object
      Returns:
      hashCode value
    • toString

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

      Creates an immutable copy of a VulkanPhysicalDeviceFeatures13Type 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 VulkanPhysicalDeviceFeatures13 instance
    • builder

      public static VulkanPhysicalDeviceFeatures13.Builder builder()
      Creates a builder for VulkanPhysicalDeviceFeatures13.
       VulkanPhysicalDeviceFeatures13.builder()
          .setRobustImageAccess(boolean) // optional robustImageAccess
          .setInlineUniformBlock(boolean) // optional inlineUniformBlock
          .setDescriptorBindingInlineUniformBlockUpdateAfterBind(boolean) // optional descriptorBindingInlineUniformBlockUpdateAfterBind
          .setPipelineCreationCacheControl(boolean) // optional pipelineCreationCacheControl
          .setPrivateData(boolean) // optional privateData
          .setShaderDemoteToHelperInvocation(boolean) // optional shaderDemoteToHelperInvocation
          .setShaderTerminateInvocation(boolean) // optional shaderTerminateInvocation
          .setSubgroupSizeControl(boolean) // optional subgroupSizeControl
          .setComputeFullSubgroups(boolean) // optional computeFullSubgroups
          .setSynchronization2(boolean) // optional synchronization2
          .setTextureCompressionASTC_HDR(boolean) // optional textureCompressionASTC_HDR
          .setShaderZeroInitializeWorkgroupMemory(boolean) // optional shaderZeroInitializeWorkgroupMemory
          .setDynamicRendering(boolean) // optional dynamicRendering
          .setShaderIntegerDotProduct(boolean) // optional shaderIntegerDotProduct
          .setMaintenance4(boolean) // optional maintenance4
          .build();
       
      Returns:
      A new VulkanPhysicalDeviceFeatures13 builder