- java.lang.Object
-
- com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures
-
- All Implemented Interfaces:
VulkanPhysicalDeviceFeaturesType
public final class VulkanPhysicalDeviceFeatures extends java.lang.Object implements VulkanPhysicalDeviceFeaturesType
The features supported by a physical device.- See Also:
- "VkPhysicalDeviceFeatures"
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
VulkanPhysicalDeviceFeatures.Builder
Builds instances of typeVulkanPhysicalDeviceFeatures
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
alphaToOne()
static VulkanPhysicalDeviceFeatures.Builder
builder()
Creates a builder forVulkanPhysicalDeviceFeatures
.static VulkanPhysicalDeviceFeatures
copyOf(VulkanPhysicalDeviceFeaturesType instance)
Creates an immutable copy of aVulkanPhysicalDeviceFeaturesType
value.boolean
depthBiasClamp()
boolean
depthBounds()
boolean
depthClamp()
boolean
drawIndirectFirstInstance()
boolean
dualSrcBlend()
boolean
equals(java.lang.Object another)
This instance is equal to all instances ofVulkanPhysicalDeviceFeatures
that have equal attribute values.boolean
fillModeNonSolid()
boolean
fragmentStoresAndAtomics()
boolean
fullDrawIndexUint32()
boolean
geometryShader()
int
hashCode()
Computes a hash code from attributes:alphaToOne
,depthBiasClamp
,depthBounds
,depthClamp
,drawIndirectFirstInstance
,dualSrcBlend
,fillModeNonSolid
,fragmentStoresAndAtomics
,fullDrawIndexUint32
,geometryShader
,imageCubeArray
,independentBlend
,inheritedQueries
,largePoints
,logicOp
,multiDrawIndirect
,multiViewport
,occlusionQueryPrecise
,pipelineStatisticsQuery
,robustBufferAccess
,samplerAnisotropy
,sampleRateShading
,shaderClipDistance
,shaderCullDistance
,shaderFloat64
,shaderImageGatherExtended
,shaderInt16
,shaderInt64
,shaderResourceMinLod
,shaderResourceResidency
,shaderSampledImageArrayDynamicIndexing
,shaderStorageBufferArrayDynamicIndexing
,shaderStorageImageArrayDynamicIndexing
,shaderStorageImageExtendedFormats
,shaderStorageImageMultisample
,shaderStorageImageReadWithoutFormat
,shaderStorageImageWriteWithoutFormat
,shaderTessellationAndGeometryPointSize
,shaderUniformBufferArrayDynamicIndexing
,sparseBinding
,sparseResidency16Samples
,sparseResidency2Samples
,sparseResidency4Samples
,sparseResidency8Samples
,sparseResidencyAliased
,sparseResidencyBuffer
,sparseResidencyImage2D
,sparseResidencyImage3D
,tessellationShader
,textureCompressionASTC_LDR
,textureCompressionBC
,textureCompressionETC2
,variableMultisampleRate
,vertexPipelineStoresAndAtomics
,wideLines
.boolean
imageCubeArray()
boolean
independentBlend()
boolean
inheritedQueries()
boolean
largePoints()
boolean
logicOp()
boolean
multiDrawIndirect()
boolean
multiViewport()
boolean
occlusionQueryPrecise()
static VulkanPhysicalDeviceFeatures
of(boolean alphaToOne, boolean depthBiasClamp, boolean depthBounds, boolean depthClamp, boolean drawIndirectFirstInstance, boolean dualSrcBlend, boolean fillModeNonSolid, boolean fragmentStoresAndAtomics, boolean fullDrawIndexUint32, boolean geometryShader, boolean imageCubeArray, boolean independentBlend, boolean inheritedQueries, boolean largePoints, boolean logicOp, boolean multiDrawIndirect, boolean multiViewport, boolean occlusionQueryPrecise, boolean pipelineStatisticsQuery, boolean robustBufferAccess, boolean samplerAnisotropy, boolean sampleRateShading, boolean shaderClipDistance, boolean shaderCullDistance, boolean shaderFloat64, boolean shaderImageGatherExtended, boolean shaderInt16, boolean shaderInt64, boolean shaderResourceMinLod, boolean shaderResourceResidency, boolean shaderSampledImageArrayDynamicIndexing, boolean shaderStorageBufferArrayDynamicIndexing, boolean shaderStorageImageArrayDynamicIndexing, boolean shaderStorageImageExtendedFormats, boolean shaderStorageImageMultisample, boolean shaderStorageImageReadWithoutFormat, boolean shaderStorageImageWriteWithoutFormat, boolean shaderTessellationAndGeometryPointSize, boolean shaderUniformBufferArrayDynamicIndexing, boolean sparseBinding, boolean sparseResidency16Samples, boolean sparseResidency2Samples, boolean sparseResidency4Samples, boolean sparseResidency8Samples, boolean sparseResidencyAliased, boolean sparseResidencyBuffer, boolean sparseResidencyImage2D, boolean sparseResidencyImage3D, boolean tessellationShader, boolean textureCompressionASTC_LDR, boolean textureCompressionBC, boolean textureCompressionETC2, boolean variableMultisampleRate, boolean vertexPipelineStoresAndAtomics, boolean wideLines)
Construct a new immutableVulkanPhysicalDeviceFeatures
instance.boolean
pipelineStatisticsQuery()
boolean
robustBufferAccess()
boolean
samplerAnisotropy()
boolean
sampleRateShading()
boolean
shaderClipDistance()
boolean
shaderCullDistance()
boolean
shaderFloat64()
boolean
shaderImageGatherExtended()
boolean
shaderInt16()
boolean
shaderInt64()
boolean
shaderResourceMinLod()
boolean
shaderResourceResidency()
boolean
shaderSampledImageArrayDynamicIndexing()
boolean
shaderStorageBufferArrayDynamicIndexing()
boolean
shaderStorageImageArrayDynamicIndexing()
boolean
shaderStorageImageExtendedFormats()
boolean
shaderStorageImageMultisample()
boolean
shaderStorageImageReadWithoutFormat()
boolean
shaderStorageImageWriteWithoutFormat()
boolean
shaderTessellationAndGeometryPointSize()
boolean
shaderUniformBufferArrayDynamicIndexing()
boolean
sparseBinding()
boolean
sparseResidency16Samples()
boolean
sparseResidency2Samples()
boolean
sparseResidency4Samples()
boolean
sparseResidency8Samples()
boolean
sparseResidencyAliased()
boolean
sparseResidencyBuffer()
boolean
sparseResidencyImage2D()
boolean
sparseResidencyImage3D()
boolean
tessellationShader()
boolean
textureCompressionASTC_LDR()
boolean
textureCompressionBC()
boolean
textureCompressionETC2()
java.lang.String
toString()
Prints the immutable valueVulkanPhysicalDeviceFeatures
with attribute values.boolean
variableMultisampleRate()
boolean
vertexPipelineStoresAndAtomics()
boolean
wideLines()
VulkanPhysicalDeviceFeatures
withAlphaToOne(boolean value)
Copy the current immutable object by setting a value for thealphaToOne
attribute.VulkanPhysicalDeviceFeatures
withDepthBiasClamp(boolean value)
Copy the current immutable object by setting a value for thedepthBiasClamp
attribute.VulkanPhysicalDeviceFeatures
withDepthBounds(boolean value)
Copy the current immutable object by setting a value for thedepthBounds
attribute.VulkanPhysicalDeviceFeatures
withDepthClamp(boolean value)
Copy the current immutable object by setting a value for thedepthClamp
attribute.VulkanPhysicalDeviceFeatures
withDrawIndirectFirstInstance(boolean value)
Copy the current immutable object by setting a value for thedrawIndirectFirstInstance
attribute.VulkanPhysicalDeviceFeatures
withDualSrcBlend(boolean value)
Copy the current immutable object by setting a value for thedualSrcBlend
attribute.VulkanPhysicalDeviceFeatures
withFillModeNonSolid(boolean value)
Copy the current immutable object by setting a value for thefillModeNonSolid
attribute.VulkanPhysicalDeviceFeatures
withFragmentStoresAndAtomics(boolean value)
Copy the current immutable object by setting a value for thefragmentStoresAndAtomics
attribute.VulkanPhysicalDeviceFeatures
withFullDrawIndexUint32(boolean value)
Copy the current immutable object by setting a value for thefullDrawIndexUint32
attribute.VulkanPhysicalDeviceFeatures
withGeometryShader(boolean value)
Copy the current immutable object by setting a value for thegeometryShader
attribute.VulkanPhysicalDeviceFeatures
withImageCubeArray(boolean value)
Copy the current immutable object by setting a value for theimageCubeArray
attribute.VulkanPhysicalDeviceFeatures
withIndependentBlend(boolean value)
Copy the current immutable object by setting a value for theindependentBlend
attribute.VulkanPhysicalDeviceFeatures
withInheritedQueries(boolean value)
Copy the current immutable object by setting a value for theinheritedQueries
attribute.VulkanPhysicalDeviceFeatures
withLargePoints(boolean value)
Copy the current immutable object by setting a value for thelargePoints
attribute.VulkanPhysicalDeviceFeatures
withLogicOp(boolean value)
Copy the current immutable object by setting a value for thelogicOp
attribute.VulkanPhysicalDeviceFeatures
withMultiDrawIndirect(boolean value)
Copy the current immutable object by setting a value for themultiDrawIndirect
attribute.VulkanPhysicalDeviceFeatures
withMultiViewport(boolean value)
Copy the current immutable object by setting a value for themultiViewport
attribute.VulkanPhysicalDeviceFeatures
withOcclusionQueryPrecise(boolean value)
Copy the current immutable object by setting a value for theocclusionQueryPrecise
attribute.VulkanPhysicalDeviceFeatures
withPipelineStatisticsQuery(boolean value)
Copy the current immutable object by setting a value for thepipelineStatisticsQuery
attribute.VulkanPhysicalDeviceFeatures
withRobustBufferAccess(boolean value)
Copy the current immutable object by setting a value for therobustBufferAccess
attribute.VulkanPhysicalDeviceFeatures
withSamplerAnisotropy(boolean value)
Copy the current immutable object by setting a value for thesamplerAnisotropy
attribute.VulkanPhysicalDeviceFeatures
withSampleRateShading(boolean value)
Copy the current immutable object by setting a value for thesampleRateShading
attribute.VulkanPhysicalDeviceFeatures
withShaderClipDistance(boolean value)
Copy the current immutable object by setting a value for theshaderClipDistance
attribute.VulkanPhysicalDeviceFeatures
withShaderCullDistance(boolean value)
Copy the current immutable object by setting a value for theshaderCullDistance
attribute.VulkanPhysicalDeviceFeatures
withShaderFloat64(boolean value)
Copy the current immutable object by setting a value for theshaderFloat64
attribute.VulkanPhysicalDeviceFeatures
withShaderImageGatherExtended(boolean value)
Copy the current immutable object by setting a value for theshaderImageGatherExtended
attribute.VulkanPhysicalDeviceFeatures
withShaderInt16(boolean value)
Copy the current immutable object by setting a value for theshaderInt16
attribute.VulkanPhysicalDeviceFeatures
withShaderInt64(boolean value)
Copy the current immutable object by setting a value for theshaderInt64
attribute.VulkanPhysicalDeviceFeatures
withShaderResourceMinLod(boolean value)
Copy the current immutable object by setting a value for theshaderResourceMinLod
attribute.VulkanPhysicalDeviceFeatures
withShaderResourceResidency(boolean value)
Copy the current immutable object by setting a value for theshaderResourceResidency
attribute.VulkanPhysicalDeviceFeatures
withShaderSampledImageArrayDynamicIndexing(boolean value)
Copy the current immutable object by setting a value for theshaderSampledImageArrayDynamicIndexing
attribute.VulkanPhysicalDeviceFeatures
withShaderStorageBufferArrayDynamicIndexing(boolean value)
Copy the current immutable object by setting a value for theshaderStorageBufferArrayDynamicIndexing
attribute.VulkanPhysicalDeviceFeatures
withShaderStorageImageArrayDynamicIndexing(boolean value)
Copy the current immutable object by setting a value for theshaderStorageImageArrayDynamicIndexing
attribute.VulkanPhysicalDeviceFeatures
withShaderStorageImageExtendedFormats(boolean value)
Copy the current immutable object by setting a value for theshaderStorageImageExtendedFormats
attribute.VulkanPhysicalDeviceFeatures
withShaderStorageImageMultisample(boolean value)
Copy the current immutable object by setting a value for theshaderStorageImageMultisample
attribute.VulkanPhysicalDeviceFeatures
withShaderStorageImageReadWithoutFormat(boolean value)
Copy the current immutable object by setting a value for theshaderStorageImageReadWithoutFormat
attribute.VulkanPhysicalDeviceFeatures
withShaderStorageImageWriteWithoutFormat(boolean value)
Copy the current immutable object by setting a value for theshaderStorageImageWriteWithoutFormat
attribute.VulkanPhysicalDeviceFeatures
withShaderTessellationAndGeometryPointSize(boolean value)
Copy the current immutable object by setting a value for theshaderTessellationAndGeometryPointSize
attribute.VulkanPhysicalDeviceFeatures
withShaderUniformBufferArrayDynamicIndexing(boolean value)
Copy the current immutable object by setting a value for theshaderUniformBufferArrayDynamicIndexing
attribute.VulkanPhysicalDeviceFeatures
withSparseBinding(boolean value)
Copy the current immutable object by setting a value for thesparseBinding
attribute.VulkanPhysicalDeviceFeatures
withSparseResidency16Samples(boolean value)
Copy the current immutable object by setting a value for thesparseResidency16Samples
attribute.VulkanPhysicalDeviceFeatures
withSparseResidency2Samples(boolean value)
Copy the current immutable object by setting a value for thesparseResidency2Samples
attribute.VulkanPhysicalDeviceFeatures
withSparseResidency4Samples(boolean value)
Copy the current immutable object by setting a value for thesparseResidency4Samples
attribute.VulkanPhysicalDeviceFeatures
withSparseResidency8Samples(boolean value)
Copy the current immutable object by setting a value for thesparseResidency8Samples
attribute.VulkanPhysicalDeviceFeatures
withSparseResidencyAliased(boolean value)
Copy the current immutable object by setting a value for thesparseResidencyAliased
attribute.VulkanPhysicalDeviceFeatures
withSparseResidencyBuffer(boolean value)
Copy the current immutable object by setting a value for thesparseResidencyBuffer
attribute.VulkanPhysicalDeviceFeatures
withSparseResidencyImage2D(boolean value)
Copy the current immutable object by setting a value for thesparseResidencyImage2D
attribute.VulkanPhysicalDeviceFeatures
withSparseResidencyImage3D(boolean value)
Copy the current immutable object by setting a value for thesparseResidencyImage3D
attribute.VulkanPhysicalDeviceFeatures
withTessellationShader(boolean value)
Copy the current immutable object by setting a value for thetessellationShader
attribute.VulkanPhysicalDeviceFeatures
withTextureCompressionASTC_LDR(boolean value)
Copy the current immutable object by setting a value for thetextureCompressionASTC_LDR
attribute.VulkanPhysicalDeviceFeatures
withTextureCompressionBC(boolean value)
Copy the current immutable object by setting a value for thetextureCompressionBC
attribute.VulkanPhysicalDeviceFeatures
withTextureCompressionETC2(boolean value)
Copy the current immutable object by setting a value for thetextureCompressionETC2
attribute.VulkanPhysicalDeviceFeatures
withVariableMultisampleRate(boolean value)
Copy the current immutable object by setting a value for thevariableMultisampleRate
attribute.VulkanPhysicalDeviceFeatures
withVertexPipelineStoresAndAtomics(boolean value)
Copy the current immutable object by setting a value for thevertexPipelineStoresAndAtomics
attribute.VulkanPhysicalDeviceFeatures
withWideLines(boolean value)
Copy the current immutable object by setting a value for thewideLines
attribute.
-
-
-
Method Detail
-
alphaToOne
public boolean alphaToOne()
- Specified by:
alphaToOne
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- alphaToOne : specifies whether the implementation is able to replace the alpha value of the color fragment output from the fragment shader with the maximum representable alpha value for fixed-point colors or 1.0 for floating-point colors. If this feature is not enabled, then the alphaToOneEnable member of the VkPipelineMultisampleStateCreateInfo structure must be set to VK_FALSE. Otherwise setting alphaToOneEnable to VK_TRUE will enable alpha-to-one behavior.
-
depthBiasClamp
public boolean depthBiasClamp()
- Specified by:
depthBiasClamp
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- depthBiasClamp : specifies whether depth bias clamping is supported. If this feature is not enabled, the depthBiasClamp member of the VkPipelineRasterizationStateCreateInfo structure must be set to 0.0 unless the VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state is enabled, and the depthBiasClamp parameter to vkCmdSetDepthBias must be set to 0.0.
-
depthBounds
public boolean depthBounds()
- Specified by:
depthBounds
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- depthBounds : specifies whether depth bounds tests are supported. If this feature is not enabled, the depthBoundsTestEnable member of the VkPipelineDepthStencilStateCreateInfo structure must be set to VK_FALSE. When depthBoundsTestEnable is set to VK_FALSE, the minDepthBounds and maxDepthBounds members of the VkPipelineDepthStencilStateCreateInfo structure are ignored.
-
depthClamp
public boolean depthClamp()
- Specified by:
depthClamp
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- depthClamp : specifies whether depth clamping is supported. If this feature is not enabled, the depthClampEnable member of the VkPipelineRasterizationStateCreateInfo structure must be set to VK_FALSE. Otherwise, setting depthClampEnable to VK_TRUE will enable depth clamping.
-
drawIndirectFirstInstance
public boolean drawIndirectFirstInstance()
- Specified by:
drawIndirectFirstInstance
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- drawIndirectFirstInstance : specifies whether indirect draw calls support the firstInstance parameter. If this feature is not enabled, the firstInstance member of all VkDrawIndirectCommand and VkDrawIndexedIndirectCommand structures that are provided to the vkCmdDrawIndirect and vkCmdDrawIndexedIndirect commands must be 0.
-
dualSrcBlend
public boolean dualSrcBlend()
- Specified by:
dualSrcBlend
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- dualSrcBlend : specifies whether blend operations which take two sources are supported. If this feature is not enabled, the VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, and VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA enum values must not be used as source or destination blending factors. See ../../html/vkspec.html#framebuffer-dsb.
-
fillModeNonSolid
public boolean fillModeNonSolid()
- Specified by:
fillModeNonSolid
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- fillModeNonSolid : specifies whether point and wireframe fill modes are supported. If this feature is not enabled, the VK_POLYGON_MODE_POINT and VK_POLYGON_MODE_LINE enum values must not be used.
-
fragmentStoresAndAtomics
public boolean fragmentStoresAndAtomics()
- Specified by:
fragmentStoresAndAtomics
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- fragmentStoresAndAtomics : specifies whether storage buffers and images support stores and atomic operations in the fragment shader stage. If this feature is not enabled, all storage image, storage texel buffers, and storage buffer variables used by the fragment stage in shader modules must be decorated with the NonWriteable decoration (or the readonly memory qualifier in GLSL).
-
fullDrawIndexUint32
public boolean fullDrawIndexUint32()
- Specified by:
fullDrawIndexUint32
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- fullDrawIndexUint32 : specifies the full 32-bit range of indices is supported for indexed draw calls when using a VkIndexType of VK_INDEX_TYPE_UINT32. maxDrawIndexedIndexValue is the maximum index value that may be used (aside from the primitive restart index, which is always 232-1 when the VkIndexType is VK_INDEX_TYPE_UINT32). If this feature is supported, maxDrawIndexedIndexValue must be 232-1; otherwise it must be no smaller than 224-1. See maxDrawIndexedIndexValue.
-
geometryShader
public boolean geometryShader()
- Specified by:
geometryShader
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- geometryShader : specifies whether geometry shaders are supported. If this feature is not enabled, the VK_SHADER_STAGE_GEOMETRY_BIT and VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT enum values must not be used. This also specifies whether shader modules can declare the Geometry capability.
-
imageCubeArray
public boolean imageCubeArray()
- Specified by:
imageCubeArray
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- imageCubeArray : specifies whether image views with a VkImageViewType of VK_IMAGE_VIEW_TYPE_CUBE_ARRAY can be created, and that the corresponding SampledCubeArray and ImageCubeArray SPIR-V capabilities can be used in shader code.
-
independentBlend
public boolean independentBlend()
- Specified by:
independentBlend
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- independentBlend : specifies whether the VkPipelineColorBlendAttachmentState settings are controlled independently per-attachment. If this feature is not enabled, the VkPipelineColorBlendAttachmentState settings for all color attachments must be identical. Otherwise, a different VkPipelineColorBlendAttachmentState can be provided for each bound color attachment.
-
inheritedQueries
public boolean inheritedQueries()
- Specified by:
inheritedQueries
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- inheritedQueries : specifies whether a secondary command buffer may be executed while a query is active.
-
largePoints
public boolean largePoints()
- Specified by:
largePoints
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- largePoints : specifies whether points with size greater than 1.0 are supported. If this feature is not enabled, only a point size of 1.0 written by a shader is supported. The range and granularity of supported point sizes are indicated by the pointSizeRange and pointSizeGranularity members of the VkPhysicalDeviceLimits structure, respectively.
-
logicOp
public boolean logicOp()
- Specified by:
logicOp
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- logicOp : specifies whether logic operations are supported. If this feature is not enabled, the logicOpEnable member of the VkPipelineColorBlendStateCreateInfo structure must be set to VK_FALSE, and the logicOp member is ignored.
-
multiDrawIndirect
public boolean multiDrawIndirect()
- Specified by:
multiDrawIndirect
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- multiDrawIndirect : specifies whether multiple draw indirect is supported. If this feature is not enabled, the drawCount parameter to the vkCmdDrawIndirect and vkCmdDrawIndexedIndirect commands must be 0 or 1. The maxDrawIndirectCount member of the VkPhysicalDeviceLimits structure must also be 1 if this feature is not supported. See maxDrawIndirectCount.
-
multiViewport
public boolean multiViewport()
- Specified by:
multiViewport
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- multiViewport : specifies whether more than one viewport is supported. If this feature is not enabled, the viewportCount and scissorCount members of the VkPipelineViewportStateCreateInfo structure must be set to 1. Similarly, the viewportCount parameter to the vkCmdSetViewport command and the scissorCount parameter to the vkCmdSetScissor command must be 1, and the firstViewport parameter to the vkCmdSetViewport command and the firstScissor parameter to the vkCmdSetScissor command must be 0.
-
occlusionQueryPrecise
public boolean occlusionQueryPrecise()
- Specified by:
occlusionQueryPrecise
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- occlusionQueryPrecise : specifies whether occlusion queries returning actual sample counts are supported. Occlusion queries are created in a VkQueryPool by specifying the queryType of VK_QUERY_TYPE_OCCLUSION in the VkQueryPoolCreateInfo structure which is passed to vkCreateQueryPool. If this feature is enabled, queries of this type can enable VK_QUERY_CONTROL_PRECISE_BIT in the flags parameter to vkCmdBeginQuery. If this feature is not supported, the implementation supports only boolean occlusion queries. When any samples are passed, boolean queries will return a non-zero result value, otherwise a result value of zero is returned. When this feature is enabled and VK_QUERY_CONTROL_PRECISE_BIT is set, occlusion queries will report the actual number of samples passed.
-
pipelineStatisticsQuery
public boolean pipelineStatisticsQuery()
- Specified by:
pipelineStatisticsQuery
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- pipelineStatisticsQuery : specifies whether the pipeline statistics queries are supported. If this feature is not enabled, queries of type VK_QUERY_TYPE_PIPELINE_STATISTICS cannot be created, and none of the VkQueryPipelineStatisticFlagBits bits can be set in the pipelineStatistics member of the VkQueryPoolCreateInfo structure.
-
robustBufferAccess
public boolean robustBufferAccess()
- Specified by:
robustBufferAccess
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- robustBufferAccess : specifies that accesses to buffers are bounds-checked against the range of the buffer descriptor (as determined by VkDescriptorBufferInfo::range, VkBufferViewCreateInfo::range, or the size of the buffer). Out of bounds accesses must not cause application termination, and the effects of shader loads, stores, and atomics must conform to an implementation-dependent behavior as described below.
-
samplerAnisotropy
public boolean samplerAnisotropy()
- Specified by:
samplerAnisotropy
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- samplerAnisotropy : specifies whether anisotropic filtering is supported. If this feature is not enabled, the anisotropyEnable member of the VkSamplerCreateInfo structure must be VK_FALSE.
-
sampleRateShading
public boolean sampleRateShading()
- Specified by:
sampleRateShading
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- sampleRateShading : specifies whether Sample Shading and multisample interpolation are supported. If this feature is not enabled, the sampleShadingEnable member of the VkPipelineMultisampleStateCreateInfo structure must be set to VK_FALSE and the minSampleShading member is ignored. This also specifies whether shader modules can declare the SampleRateShading capability.
-
shaderClipDistance
public boolean shaderClipDistance()
- Specified by:
shaderClipDistance
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderClipDistance : specifies whether clip distances are supported in shader code. If this feature is not enabled, any members decorated with the ClipDistance built-in decoration must not be read from or written to in shader modules. This also specifies whether shader modules can declare the ClipDistance capability.
-
shaderCullDistance
public boolean shaderCullDistance()
- Specified by:
shaderCullDistance
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderCullDistance : specifies whether cull distances are supported in shader code. If this feature is not enabled, any members decorated with the CullDistance built-in decoration must not be read from or written to in shader modules. This also specifies whether shader modules can declare the CullDistance capability.
-
shaderFloat64
public boolean shaderFloat64()
- Specified by:
shaderFloat64
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderFloat64 : specifies whether 64-bit floats (doubles) are supported in shader code. If this feature is not enabled, 64-bit floating-point types must not be used in shader code. This also specifies whether shader modules can declare the Float64 capability.
-
shaderImageGatherExtended
public boolean shaderImageGatherExtended()
- Specified by:
shaderImageGatherExtended
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderImageGatherExtended : specifies whether the extended set of image gather instructions are available in shader code. If this feature is not enabled, the OpImage*Gather instructions do not support the Offset and ConstOffsets operands. This also specifies whether shader modules can declare the ImageGatherExtended capability.
-
shaderInt16
public boolean shaderInt16()
- Specified by:
shaderInt16
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderInt16 : specifies whether 16-bit integers (signed and unsigned) are supported in shader code. If this feature is not enabled, 16-bit integer types must not be used in shader code. This also specifies whether shader modules can declare the Int16 capability.
-
shaderInt64
public boolean shaderInt64()
- Specified by:
shaderInt64
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderInt64 : specifies whether 64-bit integers (signed and unsigned) are supported in shader code. If this feature is not enabled, 64-bit integer types must not be used in shader code. This also specifies whether shader modules can declare the Int64 capability.
-
shaderResourceMinLod
public boolean shaderResourceMinLod()
- Specified by:
shaderResourceMinLod
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderResourceMinLod : specifies whether image operations that specify the minimum resource LOD are supported in shader code. If this feature is not enabled, the MinLod image operand must not be used in shader code. This also specifies whether shader modules can declare the MinLod capability.
-
shaderResourceResidency
public boolean shaderResourceResidency()
- Specified by:
shaderResourceResidency
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderResourceResidency : specifies whether image operations that return resource residency information are supported in shader code. If this feature is not enabled, the OpImageSparse* instructions must not be used in shader code. This also specifies whether shader modules can declare the SparseResidency capability. The feature requires at least one of the sparseResidency* features to be supported.
-
shaderSampledImageArrayDynamicIndexing
public boolean shaderSampledImageArrayDynamicIndexing()
- Specified by:
shaderSampledImageArrayDynamicIndexing
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderSampledImageArrayDynamicIndexing : specifies whether arrays of samplers or sampled images 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_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the SampledImageArrayDynamicIndexing capability.
-
shaderStorageBufferArrayDynamicIndexing
public boolean shaderStorageBufferArrayDynamicIndexing()
- Specified by:
shaderStorageBufferArrayDynamicIndexing
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderStorageBufferArrayDynamicIndexing : specifies whether arrays of storage 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_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the StorageBufferArrayDynamicIndexing capability.
-
shaderStorageImageArrayDynamicIndexing
public boolean shaderStorageImageArrayDynamicIndexing()
- Specified by:
shaderStorageImageArrayDynamicIndexing
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderStorageImageArrayDynamicIndexing : specifies whether arrays of storage images 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_IMAGE must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the StorageImageArrayDynamicIndexing capability.
-
shaderStorageImageExtendedFormats
public boolean shaderStorageImageExtendedFormats()
- Specified by:
shaderStorageImageExtendedFormats
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderStorageImageExtendedFormats : specifies whether the extended storage image formats are available in shader code. If this feature is not enabled, the formats requiring the StorageImageExtendedFormats capability are not supported for storage images. This also specifies whether shader modules can declare the StorageImageExtendedFormats capability.
-
shaderStorageImageMultisample
public boolean shaderStorageImageMultisample()
- Specified by:
shaderStorageImageMultisample
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderStorageImageMultisample : specifies whether multisampled storage images are supported. If this feature is not enabled, images that are created with a usage that includes VK_IMAGE_USAGE_STORAGE_BIT must be created with samples equal to VK_SAMPLE_COUNT_1_BIT. This also specifies whether shader modules can declare the StorageImageMultisample capability.
-
shaderStorageImageReadWithoutFormat
public boolean shaderStorageImageReadWithoutFormat()
- Specified by:
shaderStorageImageReadWithoutFormat
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderStorageImageReadWithoutFormat : specifies whether storage images require a format qualifier to be specified when reading from storage images. If this feature is not enabled, the OpImageRead instruction must not have an OpTypeImage of Unknown. This also specifies whether shader modules can declare the StorageImageReadWithoutFormat capability.
-
shaderStorageImageWriteWithoutFormat
public boolean shaderStorageImageWriteWithoutFormat()
- Specified by:
shaderStorageImageWriteWithoutFormat
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderStorageImageWriteWithoutFormat : specifies whether storage images require a format qualifier to be specified when writing to storage images. If this feature is not enabled, the OpImageWrite instruction must not have an OpTypeImage of Unknown. This also specifies whether shader modules can declare the StorageImageWriteWithoutFormat capability.
-
shaderTessellationAndGeometryPointSize
public boolean shaderTessellationAndGeometryPointSize()
- Specified by:
shaderTessellationAndGeometryPointSize
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderTessellationAndGeometryPointSize : specifies whether the PointSize built-in decoration is available in the tessellation control, tessellation evaluation, and geometry shader stages. If this feature is not enabled, members decorated with the PointSize built-in decoration must not be read from or written to and all points written from a tessellation or geometry shader will have a size of 1.0. This also specifies whether shader modules can declare the TessellationPointSize capability for tessellation control and evaluation shaders, or if the shader modules can declare the GeometryPointSize capability for geometry shaders. An implementation supporting this feature must also support one or both of the tessellationShader or geometryShader features.
-
shaderUniformBufferArrayDynamicIndexing
public boolean shaderUniformBufferArrayDynamicIndexing()
- Specified by:
shaderUniformBufferArrayDynamicIndexing
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- shaderUniformBufferArrayDynamicIndexing : specifies whether arrays of uniform 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_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the UniformBufferArrayDynamicIndexing capability.
-
sparseBinding
public boolean sparseBinding()
- Specified by:
sparseBinding
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- sparseBinding : specifies whether resource memory can be managed at opaque sparse block level instead of at the object level. If this feature is not enabled, resource memory must be bound only on a per-object basis using the vkBindBufferMemory and vkBindImageMemory commands. In this case, buffers and images must not be created with VK_BUFFER_CREATE_SPARSE_BINDING_BIT and VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in the flags member of the VkBufferCreateInfo and VkImageCreateInfo structures, respectively. Otherwise resource memory can be managed as described in Sparse Resource Features.
-
sparseResidency16Samples
public boolean sparseResidency16Samples()
- Specified by:
sparseResidency16Samples
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- sparseResidency16Samples : specifies whether the physical device can access partially resident 2D images with 16 samples per pixel. If this feature is not enabled, images with an imageType of VK_IMAGE_TYPE_2D and samples set to VK_SAMPLE_COUNT_16_BIT must not be created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
-
sparseResidency2Samples
public boolean sparseResidency2Samples()
- Specified by:
sparseResidency2Samples
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- sparseResidency2Samples : specifies whether the physical device can access partially resident 2D images with 2 samples per pixel. If this feature is not enabled, images with an imageType of VK_IMAGE_TYPE_2D and samples set to VK_SAMPLE_COUNT_2_BIT must not be created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
-
sparseResidency4Samples
public boolean sparseResidency4Samples()
- Specified by:
sparseResidency4Samples
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- sparseResidency4Samples : specifies whether the physical device can access partially resident 2D images with 4 samples per pixel. If this feature is not enabled, images with an imageType of VK_IMAGE_TYPE_2D and samples set to VK_SAMPLE_COUNT_4_BIT must not be created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
-
sparseResidency8Samples
public boolean sparseResidency8Samples()
- Specified by:
sparseResidency8Samples
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- sparseResidency8Samples : specifies whether the physical device can access partially resident 2D images with 8 samples per pixel. If this feature is not enabled, images with an imageType of VK_IMAGE_TYPE_2D and samples set to VK_SAMPLE_COUNT_8_BIT must not be created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
-
sparseResidencyAliased
public boolean sparseResidencyAliased()
- Specified by:
sparseResidencyAliased
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- sparseResidencyAliased : specifies whether the physical device can correctly access data aliased into multiple locations. If this feature is not enabled, the VK_BUFFER_CREATE_SPARSE_ALIASED_BIT and VK_IMAGE_CREATE_SPARSE_ALIASED_BIT enum values must not be used in flags members of the VkBufferCreateInfo and VkImageCreateInfo structures, respectively.
-
sparseResidencyBuffer
public boolean sparseResidencyBuffer()
- Specified by:
sparseResidencyBuffer
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- sparseResidencyBuffer : specifies whether the device can access partially resident buffers. If this feature is not enabled, buffers must not be created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkBufferCreateInfo structure.
-
sparseResidencyImage2D
public boolean sparseResidencyImage2D()
- Specified by:
sparseResidencyImage2D
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- sparseResidencyImage2D : specifies whether the device can access partially resident 2D images with 1 sample per pixel. If this feature is not enabled, images with an imageType of VK_IMAGE_TYPE_2D and samples set to VK_SAMPLE_COUNT_1_BIT must not be created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
-
sparseResidencyImage3D
public boolean sparseResidencyImage3D()
- Specified by:
sparseResidencyImage3D
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- sparseResidencyImage3D : specifies whether the device can access partially resident 3D images. If this feature is not enabled, images with an imageType of VK_IMAGE_TYPE_3D must not be created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
-
tessellationShader
public boolean tessellationShader()
- Specified by:
tessellationShader
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- tessellationShader : specifies whether tessellation control and evaluation shaders are supported. If this feature is not enabled, the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, and VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO enum values must not be used. This also specifies whether shader modules can declare the Tessellation capability.
-
textureCompressionASTC_LDR
public boolean textureCompressionASTC_LDR()
- Specified by:
textureCompressionASTC_LDR
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- textureCompressionASTC_LDR : specifies whether all of the ASTC LDR compressed texture formats are supported. vkGetPhysicalDeviceFormatProperties and vkGetPhysicalDeviceImageFormatProperties can be used to check for additional supported properties of individual formats.
-
textureCompressionBC
public boolean textureCompressionBC()
- Specified by:
textureCompressionBC
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- textureCompressionBC : specifies whether all of the BC compressed texture formats are supported. vkGetPhysicalDeviceFormatProperties and vkGetPhysicalDeviceImageFormatProperties can be used to check for additional supported properties of individual formats.
-
textureCompressionETC2
public boolean textureCompressionETC2()
- Specified by:
textureCompressionETC2
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- textureCompressionETC2 : specifies whether all of the ETC2 and EAC compressed texture formats are supported. vkGetPhysicalDeviceFormatProperties and vkGetPhysicalDeviceImageFormatProperties can be used to check for additional supported properties of individual formats.
-
variableMultisampleRate
public boolean variableMultisampleRate()
- Specified by:
variableMultisampleRate
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- variableMultisampleRate : specifies whether all pipelines that will be bound to a command buffer during a subpass with no attachments must have the same value for VkPipelineMultisampleStateCreateInfo::rasterizationSamples. If set to VK_TRUE, the implementation supports variable multisample rates in a subpass with no attachments. If set to VK_FALSE, then all pipelines bound in such a subpass must have the same multisample rate. This has no effect in situations where a subpass uses any attachments.
-
vertexPipelineStoresAndAtomics
public boolean vertexPipelineStoresAndAtomics()
- Specified by:
vertexPipelineStoresAndAtomics
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- vertexPipelineStoresAndAtomics : specifies whether storage buffers and images support stores and atomic operations in the vertex, tessellation, and geometry shader stages. If this feature is not enabled, all storage image, storage texel buffers, and storage buffer variables used by these stages in shader modules must be decorated with the NonWriteable decoration (or the readonly memory qualifier in GLSL).
-
wideLines
public boolean wideLines()
- Specified by:
wideLines
in interfaceVulkanPhysicalDeviceFeaturesType
- Returns:
- wideLines : specifies whether lines with width other than 1.0 are supported. If this feature is not enabled, the lineWidth member of the VkPipelineRasterizationStateCreateInfo structure must be set to 1.0 unless the VK_DYNAMIC_STATE_LINE_WIDTH dynamic state is enabled, and the lineWidth parameter to vkCmdSetLineWidth must be set to 1.0. When this feature is supported, the range and granularity of supported line widths are indicated by the lineWidthRange and lineWidthGranularity members of the VkPhysicalDeviceLimits structure, respectively.
-
withAlphaToOne
public final VulkanPhysicalDeviceFeatures withAlphaToOne(boolean value)
Copy the current immutable object by setting a value for thealphaToOne
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for alphaToOne- Returns:
- A modified copy of the
this
object
-
withDepthBiasClamp
public final VulkanPhysicalDeviceFeatures withDepthBiasClamp(boolean value)
Copy the current immutable object by setting a value for thedepthBiasClamp
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for depthBiasClamp- Returns:
- A modified copy of the
this
object
-
withDepthBounds
public final VulkanPhysicalDeviceFeatures withDepthBounds(boolean value)
Copy the current immutable object by setting a value for thedepthBounds
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for depthBounds- Returns:
- A modified copy of the
this
object
-
withDepthClamp
public final VulkanPhysicalDeviceFeatures withDepthClamp(boolean value)
Copy the current immutable object by setting a value for thedepthClamp
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for depthClamp- Returns:
- A modified copy of the
this
object
-
withDrawIndirectFirstInstance
public final VulkanPhysicalDeviceFeatures withDrawIndirectFirstInstance(boolean value)
Copy the current immutable object by setting a value for thedrawIndirectFirstInstance
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for drawIndirectFirstInstance- Returns:
- A modified copy of the
this
object
-
withDualSrcBlend
public final VulkanPhysicalDeviceFeatures withDualSrcBlend(boolean value)
Copy the current immutable object by setting a value for thedualSrcBlend
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for dualSrcBlend- Returns:
- A modified copy of the
this
object
-
withFillModeNonSolid
public final VulkanPhysicalDeviceFeatures withFillModeNonSolid(boolean value)
Copy the current immutable object by setting a value for thefillModeNonSolid
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for fillModeNonSolid- Returns:
- A modified copy of the
this
object
-
withFragmentStoresAndAtomics
public final VulkanPhysicalDeviceFeatures withFragmentStoresAndAtomics(boolean value)
Copy the current immutable object by setting a value for thefragmentStoresAndAtomics
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for fragmentStoresAndAtomics- Returns:
- A modified copy of the
this
object
-
withFullDrawIndexUint32
public final VulkanPhysicalDeviceFeatures withFullDrawIndexUint32(boolean value)
Copy the current immutable object by setting a value for thefullDrawIndexUint32
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for fullDrawIndexUint32- Returns:
- A modified copy of the
this
object
-
withGeometryShader
public final VulkanPhysicalDeviceFeatures withGeometryShader(boolean value)
Copy the current immutable object by setting a value for thegeometryShader
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for geometryShader- Returns:
- A modified copy of the
this
object
-
withImageCubeArray
public final VulkanPhysicalDeviceFeatures withImageCubeArray(boolean value)
Copy the current immutable object by setting a value for theimageCubeArray
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for imageCubeArray- Returns:
- A modified copy of the
this
object
-
withIndependentBlend
public final VulkanPhysicalDeviceFeatures withIndependentBlend(boolean value)
Copy the current immutable object by setting a value for theindependentBlend
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for independentBlend- Returns:
- A modified copy of the
this
object
-
withInheritedQueries
public final VulkanPhysicalDeviceFeatures withInheritedQueries(boolean value)
Copy the current immutable object by setting a value for theinheritedQueries
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for inheritedQueries- Returns:
- A modified copy of the
this
object
-
withLargePoints
public final VulkanPhysicalDeviceFeatures withLargePoints(boolean value)
Copy the current immutable object by setting a value for thelargePoints
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for largePoints- Returns:
- A modified copy of the
this
object
-
withLogicOp
public final VulkanPhysicalDeviceFeatures withLogicOp(boolean value)
Copy the current immutable object by setting a value for thelogicOp
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for logicOp- Returns:
- A modified copy of the
this
object
-
withMultiDrawIndirect
public final VulkanPhysicalDeviceFeatures withMultiDrawIndirect(boolean value)
Copy the current immutable object by setting a value for themultiDrawIndirect
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for multiDrawIndirect- Returns:
- A modified copy of the
this
object
-
withMultiViewport
public final VulkanPhysicalDeviceFeatures withMultiViewport(boolean value)
Copy the current immutable object by setting a value for themultiViewport
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for multiViewport- Returns:
- A modified copy of the
this
object
-
withOcclusionQueryPrecise
public final VulkanPhysicalDeviceFeatures withOcclusionQueryPrecise(boolean value)
Copy the current immutable object by setting a value for theocclusionQueryPrecise
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for occlusionQueryPrecise- Returns:
- A modified copy of the
this
object
-
withPipelineStatisticsQuery
public final VulkanPhysicalDeviceFeatures withPipelineStatisticsQuery(boolean value)
Copy the current immutable object by setting a value for thepipelineStatisticsQuery
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for pipelineStatisticsQuery- Returns:
- A modified copy of the
this
object
-
withRobustBufferAccess
public final VulkanPhysicalDeviceFeatures withRobustBufferAccess(boolean value)
Copy the current immutable object by setting a value for therobustBufferAccess
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for robustBufferAccess- Returns:
- A modified copy of the
this
object
-
withSamplerAnisotropy
public final VulkanPhysicalDeviceFeatures withSamplerAnisotropy(boolean value)
Copy the current immutable object by setting a value for thesamplerAnisotropy
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for samplerAnisotropy- Returns:
- A modified copy of the
this
object
-
withSampleRateShading
public final VulkanPhysicalDeviceFeatures withSampleRateShading(boolean value)
Copy the current immutable object by setting a value for thesampleRateShading
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sampleRateShading- Returns:
- A modified copy of the
this
object
-
withShaderClipDistance
public final VulkanPhysicalDeviceFeatures withShaderClipDistance(boolean value)
Copy the current immutable object by setting a value for theshaderClipDistance
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderClipDistance- Returns:
- A modified copy of the
this
object
-
withShaderCullDistance
public final VulkanPhysicalDeviceFeatures withShaderCullDistance(boolean value)
Copy the current immutable object by setting a value for theshaderCullDistance
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderCullDistance- Returns:
- A modified copy of the
this
object
-
withShaderFloat64
public final VulkanPhysicalDeviceFeatures withShaderFloat64(boolean value)
Copy the current immutable object by setting a value for theshaderFloat64
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderFloat64- Returns:
- A modified copy of the
this
object
-
withShaderImageGatherExtended
public final VulkanPhysicalDeviceFeatures withShaderImageGatherExtended(boolean value)
Copy the current immutable object by setting a value for theshaderImageGatherExtended
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderImageGatherExtended- Returns:
- A modified copy of the
this
object
-
withShaderInt16
public final VulkanPhysicalDeviceFeatures withShaderInt16(boolean value)
Copy the current immutable object by setting a value for theshaderInt16
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderInt16- Returns:
- A modified copy of the
this
object
-
withShaderInt64
public final VulkanPhysicalDeviceFeatures withShaderInt64(boolean value)
Copy the current immutable object by setting a value for theshaderInt64
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderInt64- Returns:
- A modified copy of the
this
object
-
withShaderResourceMinLod
public final VulkanPhysicalDeviceFeatures withShaderResourceMinLod(boolean value)
Copy the current immutable object by setting a value for theshaderResourceMinLod
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderResourceMinLod- Returns:
- A modified copy of the
this
object
-
withShaderResourceResidency
public final VulkanPhysicalDeviceFeatures withShaderResourceResidency(boolean value)
Copy the current immutable object by setting a value for theshaderResourceResidency
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderResourceResidency- Returns:
- A modified copy of the
this
object
-
withShaderSampledImageArrayDynamicIndexing
public final VulkanPhysicalDeviceFeatures withShaderSampledImageArrayDynamicIndexing(boolean value)
Copy the current immutable object by setting a value for theshaderSampledImageArrayDynamicIndexing
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderSampledImageArrayDynamicIndexing- Returns:
- A modified copy of the
this
object
-
withShaderStorageBufferArrayDynamicIndexing
public final VulkanPhysicalDeviceFeatures withShaderStorageBufferArrayDynamicIndexing(boolean value)
Copy the current immutable object by setting a value for theshaderStorageBufferArrayDynamicIndexing
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderStorageBufferArrayDynamicIndexing- Returns:
- A modified copy of the
this
object
-
withShaderStorageImageArrayDynamicIndexing
public final VulkanPhysicalDeviceFeatures withShaderStorageImageArrayDynamicIndexing(boolean value)
Copy the current immutable object by setting a value for theshaderStorageImageArrayDynamicIndexing
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderStorageImageArrayDynamicIndexing- Returns:
- A modified copy of the
this
object
-
withShaderStorageImageExtendedFormats
public final VulkanPhysicalDeviceFeatures withShaderStorageImageExtendedFormats(boolean value)
Copy the current immutable object by setting a value for theshaderStorageImageExtendedFormats
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderStorageImageExtendedFormats- Returns:
- A modified copy of the
this
object
-
withShaderStorageImageMultisample
public final VulkanPhysicalDeviceFeatures withShaderStorageImageMultisample(boolean value)
Copy the current immutable object by setting a value for theshaderStorageImageMultisample
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderStorageImageMultisample- Returns:
- A modified copy of the
this
object
-
withShaderStorageImageReadWithoutFormat
public final VulkanPhysicalDeviceFeatures withShaderStorageImageReadWithoutFormat(boolean value)
Copy the current immutable object by setting a value for theshaderStorageImageReadWithoutFormat
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderStorageImageReadWithoutFormat- Returns:
- A modified copy of the
this
object
-
withShaderStorageImageWriteWithoutFormat
public final VulkanPhysicalDeviceFeatures withShaderStorageImageWriteWithoutFormat(boolean value)
Copy the current immutable object by setting a value for theshaderStorageImageWriteWithoutFormat
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderStorageImageWriteWithoutFormat- Returns:
- A modified copy of the
this
object
-
withShaderTessellationAndGeometryPointSize
public final VulkanPhysicalDeviceFeatures withShaderTessellationAndGeometryPointSize(boolean value)
Copy the current immutable object by setting a value for theshaderTessellationAndGeometryPointSize
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderTessellationAndGeometryPointSize- Returns:
- A modified copy of the
this
object
-
withShaderUniformBufferArrayDynamicIndexing
public final VulkanPhysicalDeviceFeatures withShaderUniformBufferArrayDynamicIndexing(boolean value)
Copy the current immutable object by setting a value for theshaderUniformBufferArrayDynamicIndexing
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for shaderUniformBufferArrayDynamicIndexing- Returns:
- A modified copy of the
this
object
-
withSparseBinding
public final VulkanPhysicalDeviceFeatures withSparseBinding(boolean value)
Copy the current immutable object by setting a value for thesparseBinding
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sparseBinding- Returns:
- A modified copy of the
this
object
-
withSparseResidency16Samples
public final VulkanPhysicalDeviceFeatures withSparseResidency16Samples(boolean value)
Copy the current immutable object by setting a value for thesparseResidency16Samples
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sparseResidency16Samples- Returns:
- A modified copy of the
this
object
-
withSparseResidency2Samples
public final VulkanPhysicalDeviceFeatures withSparseResidency2Samples(boolean value)
Copy the current immutable object by setting a value for thesparseResidency2Samples
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sparseResidency2Samples- Returns:
- A modified copy of the
this
object
-
withSparseResidency4Samples
public final VulkanPhysicalDeviceFeatures withSparseResidency4Samples(boolean value)
Copy the current immutable object by setting a value for thesparseResidency4Samples
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sparseResidency4Samples- Returns:
- A modified copy of the
this
object
-
withSparseResidency8Samples
public final VulkanPhysicalDeviceFeatures withSparseResidency8Samples(boolean value)
Copy the current immutable object by setting a value for thesparseResidency8Samples
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sparseResidency8Samples- Returns:
- A modified copy of the
this
object
-
withSparseResidencyAliased
public final VulkanPhysicalDeviceFeatures withSparseResidencyAliased(boolean value)
Copy the current immutable object by setting a value for thesparseResidencyAliased
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sparseResidencyAliased- Returns:
- A modified copy of the
this
object
-
withSparseResidencyBuffer
public final VulkanPhysicalDeviceFeatures withSparseResidencyBuffer(boolean value)
Copy the current immutable object by setting a value for thesparseResidencyBuffer
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sparseResidencyBuffer- Returns:
- A modified copy of the
this
object
-
withSparseResidencyImage2D
public final VulkanPhysicalDeviceFeatures withSparseResidencyImage2D(boolean value)
Copy the current immutable object by setting a value for thesparseResidencyImage2D
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sparseResidencyImage2D- Returns:
- A modified copy of the
this
object
-
withSparseResidencyImage3D
public final VulkanPhysicalDeviceFeatures withSparseResidencyImage3D(boolean value)
Copy the current immutable object by setting a value for thesparseResidencyImage3D
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for sparseResidencyImage3D- Returns:
- A modified copy of the
this
object
-
withTessellationShader
public final VulkanPhysicalDeviceFeatures withTessellationShader(boolean value)
Copy the current immutable object by setting a value for thetessellationShader
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for tessellationShader- Returns:
- A modified copy of the
this
object
-
withTextureCompressionASTC_LDR
public final VulkanPhysicalDeviceFeatures withTextureCompressionASTC_LDR(boolean value)
Copy the current immutable object by setting a value for thetextureCompressionASTC_LDR
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for textureCompressionASTC_LDR- Returns:
- A modified copy of the
this
object
-
withTextureCompressionBC
public final VulkanPhysicalDeviceFeatures withTextureCompressionBC(boolean value)
Copy the current immutable object by setting a value for thetextureCompressionBC
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for textureCompressionBC- Returns:
- A modified copy of the
this
object
-
withTextureCompressionETC2
public final VulkanPhysicalDeviceFeatures withTextureCompressionETC2(boolean value)
Copy the current immutable object by setting a value for thetextureCompressionETC2
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for textureCompressionETC2- Returns:
- A modified copy of the
this
object
-
withVariableMultisampleRate
public final VulkanPhysicalDeviceFeatures withVariableMultisampleRate(boolean value)
Copy the current immutable object by setting a value for thevariableMultisampleRate
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for variableMultisampleRate- Returns:
- A modified copy of the
this
object
-
withVertexPipelineStoresAndAtomics
public final VulkanPhysicalDeviceFeatures withVertexPipelineStoresAndAtomics(boolean value)
Copy the current immutable object by setting a value for thevertexPipelineStoresAndAtomics
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for vertexPipelineStoresAndAtomics- Returns:
- A modified copy of the
this
object
-
withWideLines
public final VulkanPhysicalDeviceFeatures withWideLines(boolean value)
Copy the current immutable object by setting a value for thewideLines
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for wideLines- Returns:
- A modified copy of the
this
object
-
equals
public boolean equals(java.lang.Object another)
This instance is equal to all instances ofVulkanPhysicalDeviceFeatures
that have equal attribute values.- Overrides:
equals
in classjava.lang.Object
- Returns:
true
ifthis
is equal toanother
instance
-
hashCode
public int hashCode()
Computes a hash code from attributes:alphaToOne
,depthBiasClamp
,depthBounds
,depthClamp
,drawIndirectFirstInstance
,dualSrcBlend
,fillModeNonSolid
,fragmentStoresAndAtomics
,fullDrawIndexUint32
,geometryShader
,imageCubeArray
,independentBlend
,inheritedQueries
,largePoints
,logicOp
,multiDrawIndirect
,multiViewport
,occlusionQueryPrecise
,pipelineStatisticsQuery
,robustBufferAccess
,samplerAnisotropy
,sampleRateShading
,shaderClipDistance
,shaderCullDistance
,shaderFloat64
,shaderImageGatherExtended
,shaderInt16
,shaderInt64
,shaderResourceMinLod
,shaderResourceResidency
,shaderSampledImageArrayDynamicIndexing
,shaderStorageBufferArrayDynamicIndexing
,shaderStorageImageArrayDynamicIndexing
,shaderStorageImageExtendedFormats
,shaderStorageImageMultisample
,shaderStorageImageReadWithoutFormat
,shaderStorageImageWriteWithoutFormat
,shaderTessellationAndGeometryPointSize
,shaderUniformBufferArrayDynamicIndexing
,sparseBinding
,sparseResidency16Samples
,sparseResidency2Samples
,sparseResidency4Samples
,sparseResidency8Samples
,sparseResidencyAliased
,sparseResidencyBuffer
,sparseResidencyImage2D
,sparseResidencyImage3D
,tessellationShader
,textureCompressionASTC_LDR
,textureCompressionBC
,textureCompressionETC2
,variableMultisampleRate
,vertexPipelineStoresAndAtomics
,wideLines
.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- hashCode value
-
toString
public java.lang.String toString()
Prints the immutable valueVulkanPhysicalDeviceFeatures
with attribute values.- Overrides:
toString
in classjava.lang.Object
- Returns:
- A string representation of the value
-
of
public static VulkanPhysicalDeviceFeatures of(boolean alphaToOne, boolean depthBiasClamp, boolean depthBounds, boolean depthClamp, boolean drawIndirectFirstInstance, boolean dualSrcBlend, boolean fillModeNonSolid, boolean fragmentStoresAndAtomics, boolean fullDrawIndexUint32, boolean geometryShader, boolean imageCubeArray, boolean independentBlend, boolean inheritedQueries, boolean largePoints, boolean logicOp, boolean multiDrawIndirect, boolean multiViewport, boolean occlusionQueryPrecise, boolean pipelineStatisticsQuery, boolean robustBufferAccess, boolean samplerAnisotropy, boolean sampleRateShading, boolean shaderClipDistance, boolean shaderCullDistance, boolean shaderFloat64, boolean shaderImageGatherExtended, boolean shaderInt16, boolean shaderInt64, boolean shaderResourceMinLod, boolean shaderResourceResidency, boolean shaderSampledImageArrayDynamicIndexing, boolean shaderStorageBufferArrayDynamicIndexing, boolean shaderStorageImageArrayDynamicIndexing, boolean shaderStorageImageExtendedFormats, boolean shaderStorageImageMultisample, boolean shaderStorageImageReadWithoutFormat, boolean shaderStorageImageWriteWithoutFormat, boolean shaderTessellationAndGeometryPointSize, boolean shaderUniformBufferArrayDynamicIndexing, boolean sparseBinding, boolean sparseResidency16Samples, boolean sparseResidency2Samples, boolean sparseResidency4Samples, boolean sparseResidency8Samples, boolean sparseResidencyAliased, boolean sparseResidencyBuffer, boolean sparseResidencyImage2D, boolean sparseResidencyImage3D, boolean tessellationShader, boolean textureCompressionASTC_LDR, boolean textureCompressionBC, boolean textureCompressionETC2, boolean variableMultisampleRate, boolean vertexPipelineStoresAndAtomics, boolean wideLines)
Construct a new immutableVulkanPhysicalDeviceFeatures
instance.- Parameters:
alphaToOne
- The value for thealphaToOne
attributedepthBiasClamp
- The value for thedepthBiasClamp
attributedepthBounds
- The value for thedepthBounds
attributedepthClamp
- The value for thedepthClamp
attributedrawIndirectFirstInstance
- The value for thedrawIndirectFirstInstance
attributedualSrcBlend
- The value for thedualSrcBlend
attributefillModeNonSolid
- The value for thefillModeNonSolid
attributefragmentStoresAndAtomics
- The value for thefragmentStoresAndAtomics
attributefullDrawIndexUint32
- The value for thefullDrawIndexUint32
attributegeometryShader
- The value for thegeometryShader
attributeimageCubeArray
- The value for theimageCubeArray
attributeindependentBlend
- The value for theindependentBlend
attributeinheritedQueries
- The value for theinheritedQueries
attributelargePoints
- The value for thelargePoints
attributelogicOp
- The value for thelogicOp
attributemultiDrawIndirect
- The value for themultiDrawIndirect
attributemultiViewport
- The value for themultiViewport
attributeocclusionQueryPrecise
- The value for theocclusionQueryPrecise
attributepipelineStatisticsQuery
- The value for thepipelineStatisticsQuery
attributerobustBufferAccess
- The value for therobustBufferAccess
attributesamplerAnisotropy
- The value for thesamplerAnisotropy
attributesampleRateShading
- The value for thesampleRateShading
attributeshaderClipDistance
- The value for theshaderClipDistance
attributeshaderCullDistance
- The value for theshaderCullDistance
attributeshaderFloat64
- The value for theshaderFloat64
attributeshaderImageGatherExtended
- The value for theshaderImageGatherExtended
attributeshaderInt16
- The value for theshaderInt16
attributeshaderInt64
- The value for theshaderInt64
attributeshaderResourceMinLod
- The value for theshaderResourceMinLod
attributeshaderResourceResidency
- The value for theshaderResourceResidency
attributeshaderSampledImageArrayDynamicIndexing
- The value for theshaderSampledImageArrayDynamicIndexing
attributeshaderStorageBufferArrayDynamicIndexing
- The value for theshaderStorageBufferArrayDynamicIndexing
attributeshaderStorageImageArrayDynamicIndexing
- The value for theshaderStorageImageArrayDynamicIndexing
attributeshaderStorageImageExtendedFormats
- The value for theshaderStorageImageExtendedFormats
attributeshaderStorageImageMultisample
- The value for theshaderStorageImageMultisample
attributeshaderStorageImageReadWithoutFormat
- The value for theshaderStorageImageReadWithoutFormat
attributeshaderStorageImageWriteWithoutFormat
- The value for theshaderStorageImageWriteWithoutFormat
attributeshaderTessellationAndGeometryPointSize
- The value for theshaderTessellationAndGeometryPointSize
attributeshaderUniformBufferArrayDynamicIndexing
- The value for theshaderUniformBufferArrayDynamicIndexing
attributesparseBinding
- The value for thesparseBinding
attributesparseResidency16Samples
- The value for thesparseResidency16Samples
attributesparseResidency2Samples
- The value for thesparseResidency2Samples
attributesparseResidency4Samples
- The value for thesparseResidency4Samples
attributesparseResidency8Samples
- The value for thesparseResidency8Samples
attributesparseResidencyAliased
- The value for thesparseResidencyAliased
attributesparseResidencyBuffer
- The value for thesparseResidencyBuffer
attributesparseResidencyImage2D
- The value for thesparseResidencyImage2D
attributesparseResidencyImage3D
- The value for thesparseResidencyImage3D
attributetessellationShader
- The value for thetessellationShader
attributetextureCompressionASTC_LDR
- The value for thetextureCompressionASTC_LDR
attributetextureCompressionBC
- The value for thetextureCompressionBC
attributetextureCompressionETC2
- The value for thetextureCompressionETC2
attributevariableMultisampleRate
- The value for thevariableMultisampleRate
attributevertexPipelineStoresAndAtomics
- The value for thevertexPipelineStoresAndAtomics
attributewideLines
- The value for thewideLines
attribute- Returns:
- An immutable VulkanPhysicalDeviceFeatures instance
-
copyOf
public static VulkanPhysicalDeviceFeatures copyOf(VulkanPhysicalDeviceFeaturesType instance)
Creates an immutable copy of aVulkanPhysicalDeviceFeaturesType
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 VulkanPhysicalDeviceFeatures instance
-
builder
public static VulkanPhysicalDeviceFeatures.Builder builder()
Creates a builder forVulkanPhysicalDeviceFeatures
.- Returns:
- A new VulkanPhysicalDeviceFeatures builder
-
-