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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classBuilds instances of typeVulkanPhysicalDeviceFeatures13. -
Method Summary
Modifier and TypeMethodDescriptionbuilder()Creates a builder forVulkanPhysicalDeviceFeatures13.booleanIndicates 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.copyOf(VulkanPhysicalDeviceFeatures13Type instance) Creates an immutable copy of aVulkanPhysicalDeviceFeatures13Typevalue.booleanIndicates whether the implementation supports updating inline uniform block descriptors after a set is bound.booleanSpecifies that the implementation supports dynamic render pass instancesbooleanThis instance is equal to all instances ofVulkanPhysicalDeviceFeatures13that have equal attribute values.inthashCode()Computes a hash code from attributes:robustImageAccess,inlineUniformBlock,descriptorBindingInlineUniformBlockUpdateAfterBind,pipelineCreationCacheControl,privateData,shaderDemoteToHelperInvocation,shaderTerminateInvocation,subgroupSizeControl,computeFullSubgroups,synchronization2,textureCompressionASTC_HDR,shaderZeroInitializeWorkgroupMemory,dynamicRendering,shaderIntegerDotProduct,maintenance4.booleanIndicates whether the implementation supports inline uniform block descriptors.booleanIndicates that the implementation supports maintenance4.booleanbooleanIndicates whether the implementation supports private data.booleanIndicates whether image accesses are tightly bounds-checked against the dimensions of the image view.booleanIndicates whether the implementation supports the SPIR-V DemoteToHelperInvocationEXT capability.booleanSpecifies whether shader modules can declare the DotProductInputAllKHR, DotProductInput4x8BitKHR, DotProductInput4x8BitPackedKHR and DotProductKHR capabilities.booleanSpecifies whether the implementation supports SPIR-V modules that use the SPV_KHR_terminate_invocation extension.booleanSpecifies whether the implementation supports initializing a variable in Workgroup storage class.booleanIndicates 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.booleanIndicates whether the implementation supports the new set of synchronization commands introduced in VK_KHR_synchronization2.booleanIndicates whether all of the ASTC HDR compressed texture formats are supported.toString()Prints the immutable valueVulkanPhysicalDeviceFeatures13with attribute values.withComputeFullSubgroups(boolean value) Copy the current immutable object by setting a value for thecomputeFullSubgroupsattribute.withDescriptorBindingInlineUniformBlockUpdateAfterBind(boolean value) Copy the current immutable object by setting a value for thedescriptorBindingInlineUniformBlockUpdateAfterBindattribute.withDynamicRendering(boolean value) Copy the current immutable object by setting a value for thedynamicRenderingattribute.withInlineUniformBlock(boolean value) Copy the current immutable object by setting a value for theinlineUniformBlockattribute.withMaintenance4(boolean value) Copy the current immutable object by setting a value for themaintenance4attribute.withPipelineCreationCacheControl(boolean value) Copy the current immutable object by setting a value for thepipelineCreationCacheControlattribute.withPrivateData(boolean value) Copy the current immutable object by setting a value for theprivateDataattribute.withRobustImageAccess(boolean value) Copy the current immutable object by setting a value for therobustImageAccessattribute.withShaderDemoteToHelperInvocation(boolean value) Copy the current immutable object by setting a value for theshaderDemoteToHelperInvocationattribute.withShaderIntegerDotProduct(boolean value) Copy the current immutable object by setting a value for theshaderIntegerDotProductattribute.withShaderTerminateInvocation(boolean value) Copy the current immutable object by setting a value for theshaderTerminateInvocationattribute.withShaderZeroInitializeWorkgroupMemory(boolean value) Copy the current immutable object by setting a value for theshaderZeroInitializeWorkgroupMemoryattribute.withSubgroupSizeControl(boolean value) Copy the current immutable object by setting a value for thesubgroupSizeControlattribute.withSynchronization2(boolean value) Copy the current immutable object by setting a value for thesynchronization2attribute.withTextureCompressionASTC_HDR(boolean value) Copy the current immutable object by setting a value for thetextureCompressionASTC_HDRattribute.
-
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:
robustImageAccessin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif 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:
inlineUniformBlockin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif 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:
descriptorBindingInlineUniformBlockUpdateAfterBindin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
pipelineCreationCacheControl
public boolean pipelineCreationCacheControl()- Specified by:
pipelineCreationCacheControlin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
privateData
public boolean privateData()Indicates whether the implementation supports private data.- Specified by:
privateDatain interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
shaderDemoteToHelperInvocation
public boolean shaderDemoteToHelperInvocation()Indicates whether the implementation supports the SPIR-V DemoteToHelperInvocationEXT capability.- Specified by:
shaderDemoteToHelperInvocationin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
shaderTerminateInvocation
public boolean shaderTerminateInvocation()Specifies whether the implementation supports SPIR-V modules that use the SPV_KHR_terminate_invocation extension.- Specified by:
shaderTerminateInvocationin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif 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:
subgroupSizeControlin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif 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:
computeFullSubgroupsin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
synchronization2
public boolean synchronization2()Indicates whether the implementation supports the new set of synchronization commands introduced in VK_KHR_synchronization2.- Specified by:
synchronization2in interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
textureCompressionASTC_HDR
public boolean textureCompressionASTC_HDR()Indicates whether all of the ASTC HDR compressed texture formats are supported.- Specified by:
textureCompressionASTC_HDRin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
shaderZeroInitializeWorkgroupMemory
public boolean shaderZeroInitializeWorkgroupMemory()Specifies whether the implementation supports initializing a variable in Workgroup storage class.- Specified by:
shaderZeroInitializeWorkgroupMemoryin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
dynamicRendering
public boolean dynamicRendering()Specifies that the implementation supports dynamic render pass instances- Specified by:
dynamicRenderingin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
shaderIntegerDotProduct
public boolean shaderIntegerDotProduct()Specifies whether shader modules can declare the DotProductInputAllKHR, DotProductInput4x8BitKHR, DotProductInput4x8BitPackedKHR and DotProductKHR capabilities.- Specified by:
shaderIntegerDotProductin interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
maintenance4
public boolean maintenance4()Indicates that the implementation supports maintenance4.- Specified by:
maintenance4in interfaceVulkanPhysicalDeviceFeatures13Type- Returns:
trueif supported
-
withRobustImageAccess
Copy the current immutable object by setting a value for therobustImageAccessattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for robustImageAccess- Returns:
- A modified copy of the
thisobject
-
withInlineUniformBlock
Copy the current immutable object by setting a value for theinlineUniformBlockattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for inlineUniformBlock- Returns:
- A modified copy of the
thisobject
-
withDescriptorBindingInlineUniformBlockUpdateAfterBind
public final VulkanPhysicalDeviceFeatures13 withDescriptorBindingInlineUniformBlockUpdateAfterBind(boolean value) Copy the current immutable object by setting a value for thedescriptorBindingInlineUniformBlockUpdateAfterBindattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for descriptorBindingInlineUniformBlockUpdateAfterBind- Returns:
- A modified copy of the
thisobject
-
withPipelineCreationCacheControl
Copy the current immutable object by setting a value for thepipelineCreationCacheControlattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for pipelineCreationCacheControl- Returns:
- A modified copy of the
thisobject
-
withPrivateData
Copy the current immutable object by setting a value for theprivateDataattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for privateData- Returns:
- A modified copy of the
thisobject
-
withShaderDemoteToHelperInvocation
Copy the current immutable object by setting a value for theshaderDemoteToHelperInvocationattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for shaderDemoteToHelperInvocation- Returns:
- A modified copy of the
thisobject
-
withShaderTerminateInvocation
Copy the current immutable object by setting a value for theshaderTerminateInvocationattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for shaderTerminateInvocation- Returns:
- A modified copy of the
thisobject
-
withSubgroupSizeControl
Copy the current immutable object by setting a value for thesubgroupSizeControlattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for subgroupSizeControl- Returns:
- A modified copy of the
thisobject
-
withComputeFullSubgroups
Copy the current immutable object by setting a value for thecomputeFullSubgroupsattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for computeFullSubgroups- Returns:
- A modified copy of the
thisobject
-
withSynchronization2
Copy the current immutable object by setting a value for thesynchronization2attribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for synchronization2- Returns:
- A modified copy of the
thisobject
-
withTextureCompressionASTC_HDR
Copy the current immutable object by setting a value for thetextureCompressionASTC_HDRattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for textureCompressionASTC_HDR- Returns:
- A modified copy of the
thisobject
-
withShaderZeroInitializeWorkgroupMemory
Copy the current immutable object by setting a value for theshaderZeroInitializeWorkgroupMemoryattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for shaderZeroInitializeWorkgroupMemory- Returns:
- A modified copy of the
thisobject
-
withDynamicRendering
Copy the current immutable object by setting a value for thedynamicRenderingattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for dynamicRendering- Returns:
- A modified copy of the
thisobject
-
withShaderIntegerDotProduct
Copy the current immutable object by setting a value for theshaderIntegerDotProductattribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for shaderIntegerDotProduct- Returns:
- A modified copy of the
thisobject
-
withMaintenance4
Copy the current immutable object by setting a value for themaintenance4attribute. A value equality check is used to prevent copying of the same value by returningthis.- Parameters:
value- A new value for maintenance4- Returns:
- A modified copy of the
thisobject
-
equals
-
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. -
toString
-
copyOf
Creates an immutable copy of aVulkanPhysicalDeviceFeatures13Typevalue. 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
Creates a builder forVulkanPhysicalDeviceFeatures13.VulkanPhysicalDeviceFeatures13.builder() .setRobustImageAccess(boolean) // optionalrobustImageAccess.setInlineUniformBlock(boolean) // optionalinlineUniformBlock.setDescriptorBindingInlineUniformBlockUpdateAfterBind(boolean) // optionaldescriptorBindingInlineUniformBlockUpdateAfterBind.setPipelineCreationCacheControl(boolean) // optionalpipelineCreationCacheControl.setPrivateData(boolean) // optionalprivateData.setShaderDemoteToHelperInvocation(boolean) // optionalshaderDemoteToHelperInvocation.setShaderTerminateInvocation(boolean) // optionalshaderTerminateInvocation.setSubgroupSizeControl(boolean) // optionalsubgroupSizeControl.setComputeFullSubgroups(boolean) // optionalcomputeFullSubgroups.setSynchronization2(boolean) // optionalsynchronization2.setTextureCompressionASTC_HDR(boolean) // optionaltextureCompressionASTC_HDR.setShaderZeroInitializeWorkgroupMemory(boolean) // optionalshaderZeroInitializeWorkgroupMemory.setDynamicRendering(boolean) // optionaldynamicRendering.setShaderIntegerDotProduct(boolean) // optionalshaderIntegerDotProduct.setMaintenance4(boolean) // optionalmaintenance4.build();- Returns:
- A new VulkanPhysicalDeviceFeatures13 builder
-