# Class VulkanPhysicalDeviceLimits

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

All Implemented Interfaces:
  `VulkanPhysicalDeviceLimitsType`

public final class VulkanPhysicalDeviceLimits extends Object implements VulkanPhysicalDeviceLimitsType
The limits of a physical device.

See Also:
  - "VkPhysicalDeviceLimits"

- ## Nested Class Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `bufferImageGranularity()`
  `static VulkanPhysicalDeviceLimits.Builder`
  `builder()`
  Creates a builder for `VulkanPhysicalDeviceLimits`.
  `static VulkanPhysicalDeviceLimits`
  `copyOf(VulkanPhysicalDeviceLimitsType instance)`
  Creates an immutable copy of a `VulkanPhysicalDeviceLimitsType` value.
  `int`
  `discreteQueuePriorities()`
  `boolean`
  `equals(Object another)`
  This instance is equal to all instances of `VulkanPhysicalDeviceLimits` that have equal attribute values.
  `int`
  `framebufferColorSampleCounts()`
  `int`
  `framebufferDepthSampleCounts()`
  `int`
  `framebufferNoAttachmentsSampleCounts()`
  `int`
  `framebufferStencilSampleCounts()`
  `int`
  `hashCode()`
  Computes a hash code from attributes: `bufferImageGranularity`, `discreteQueuePriorities`, `framebufferColorSampleCounts`, `framebufferDepthSampleCounts`, `framebufferNoAttachmentsSampleCounts`, `framebufferStencilSampleCounts`, `lineWidthGranularity`, `lineWidthRange`, `maxBoundDescriptorSets`, `maxClipDistances`, `maxColorAttachments`, `maxCombinedClipAndCullDistances`, `maxComputeSharedMemorySize`, `maxComputeWorkGroupCount`, `maxComputeWorkGroupInvocations`, `maxComputeWorkGroupSize`, `maxCullDistances`, `maxDescriptorSetInputAttachments`, `maxDescriptorSetSampledImages`, `maxDescriptorSetSamplers`, `maxDescriptorSetStorageBuffersDynamic`, `maxDescriptorSetStorageBuffers`, `maxDescriptorSetStorageImages`, `maxDescriptorSetUniformBuffersDynamic`, `maxDescriptorSetUniformBuffers`, `maxDrawIndexedIndexValue`, `maxDrawIndirectCount`, `maxFragmentCombinedOutputResources`, `maxFragmentDualSrcAttachments`, `maxFragmentInputComponents`, `maxFragmentOutputAttachments`, `maxFramebufferHeight`, `maxFramebufferLayers`, `maxFramebufferWidth`, `maxGeometryInputComponents`, `maxGeometryOutputComponents`, `maxGeometryOutputVertices`, `maxGeometryShaderInvocations`, `maxGeometryTotalOutputComponents`, `maxImageArrayLayers`, `maxImageDimension1D`, `maxImageDimension2D`, `maxImageDimension3D`, `maxImageDimensionCube`, `maxInterpolationOffset`, `maxMemoryAllocationCount`, `maxPerStageDescriptorInputAttachments`, `maxPerStageDescriptorSampledImages`, `maxPerStageDescriptorSamplers`, `maxPerStageDescriptorStorageBuffers`, `maxPerStageDescriptorStorageImages`, `maxPerStageDescriptorUniformBuffers`, `maxPerStageResources`, `maxPushConstantsSize`, `maxSampleMaskWords`, `maxSamplerAllocationCount`, `maxSamplerAnisotropy`, `maxSamplerLodBias`, `maxStorageBufferRange`, `maxTessellationControlPerPatchOutputComponents`, `maxTessellationControlPerVertexInputComponents`, `maxTessellationControlPerVertexOutputComponents`, `maxTessellationControlTotalOutputComponents`, `maxTessellationEvaluationInputComponents`, `maxTessellationEvaluationOutputComponents`, `maxTessellationGenerationLevel`, `maxTessellationPatchSize`, `maxTexelBufferElements`, `maxTexelGatherOffset`, `maxTexelOffset`, `maxUniformBufferRange`, `maxVertexInputAttributeOffset`, `maxVertexInputAttributes`, `maxVertexInputBindings`, `maxVertexInputBindingStride`, `maxVertexOutputComponents`, `maxViewportDimensions`, `maxViewports`, `minInterpolationOffset`, `minMemoryMapAlignment`, `minStorageBufferOffsetAlignment`, `minTexelBufferOffsetAlignment`, `minTexelGatherOffset`, `minTexelOffset`, `minUniformBufferOffsetAlignment`, `mipmapPrecisionBits`, `nonCoherentAtomSize`, `optimalBufferCopyOffsetAlignment`, `optimalBufferCopyRowPitchAlignment`, `pointSizeGranularity`, `pointSizeRange`, `sampledImageColorSampleCounts`, `sampledImageDepthSampleCounts`, `sampledImageIntegerSampleCounts`, `sampledImageStencilSampleCounts`, `sparseAddressSpaceSize`, `standardSampleLocations`, `storageImageSampleCounts`, `strictLines`, `subPixelInterpolationOffsetBits`, `subPixelPrecisionBits`, `subTexelPrecisionBits`, `timestampComputeAndGraphics`, `timestampPeriod`, `viewportBoundsRange`, `viewportSubPixelBits`.
  `float`
  `lineWidthGranularity()`
  `VulkanLineWidthRange`
  `lineWidthRange()`
  `int`
  `maxBoundDescriptorSets()`
  `int`
  `maxClipDistances()`
  `int`
  `maxColorAttachments()`
  `int`
  `maxCombinedClipAndCullDistances()`
  `int`
  `maxComputeSharedMemorySize()`
  `VulkanComputeWorkGroupCount`
  `maxComputeWorkGroupCount()`
  `int`
  `maxComputeWorkGroupInvocations()`
  `VulkanComputeWorkGroupSize`
  `maxComputeWorkGroupSize()`
  `int`
  `maxCullDistances()`
  `int`
  `maxDescriptorSetInputAttachments()`
  `int`
  `maxDescriptorSetSampledImages()`
  `int`
  `maxDescriptorSetSamplers()`
  `int`
  `maxDescriptorSetStorageBuffers()`
  `int`
  `maxDescriptorSetStorageBuffersDynamic()`
  `int`
  `maxDescriptorSetStorageImages()`
  `int`
  `maxDescriptorSetUniformBuffers()`
  `int`
  `maxDescriptorSetUniformBuffersDynamic()`
  `int`
  `maxDrawIndexedIndexValue()`
  `int`
  `maxDrawIndirectCount()`
  `int`
  `maxFragmentCombinedOutputResources()`
  `int`
  `maxFragmentDualSrcAttachments()`
  `int`
  `maxFragmentInputComponents()`
  `int`
  `maxFragmentOutputAttachments()`
  `int`
  `maxFramebufferHeight()`
  `int`
  `maxFramebufferLayers()`
  `int`
  `maxFramebufferWidth()`
  `int`
  `maxGeometryInputComponents()`
  `int`
  `maxGeometryOutputComponents()`
  `int`
  `maxGeometryOutputVertices()`
  `int`
  `maxGeometryShaderInvocations()`
  `int`
  `maxGeometryTotalOutputComponents()`
  `int`
  `maxImageArrayLayers()`
  `int`
  `maxImageDimension1D()`
  `int`
  `maxImageDimension2D()`
  `int`
  `maxImageDimension3D()`
  `int`
  `maxImageDimensionCube()`
  `float`
  `maxInterpolationOffset()`
  `int`
  `maxMemoryAllocationCount()`
  `int`
  `maxPerStageDescriptorInputAttachments()`
  `int`
  `maxPerStageDescriptorSampledImages()`
  `int`
  `maxPerStageDescriptorSamplers()`
  `int`
  `maxPerStageDescriptorStorageBuffers()`
  `int`
  `maxPerStageDescriptorStorageImages()`
  `int`
  `maxPerStageDescriptorUniformBuffers()`
  `int`
  `maxPerStageResources()`
  `int`
  `maxPushConstantsSize()`
  `int`
  `maxSampleMaskWords()`
  `int`
  `maxSamplerAllocationCount()`
  `float`
  `maxSamplerAnisotropy()`
  `float`
  `maxSamplerLodBias()`
  `int`
  `maxStorageBufferRange()`
  `int`
  `maxTessellationControlPerPatchOutputComponents()`
  `int`
  `maxTessellationControlPerVertexInputComponents()`
  `int`
  `maxTessellationControlPerVertexOutputComponents()`
  `int`
  `maxTessellationControlTotalOutputComponents()`
  `int`
  `maxTessellationEvaluationInputComponents()`
  `int`
  `maxTessellationEvaluationOutputComponents()`
  `int`
  `maxTessellationGenerationLevel()`
  `int`
  `maxTessellationPatchSize()`
  `int`
  `maxTexelBufferElements()`
  `int`
  `maxTexelGatherOffset()`
  `int`
  `maxTexelOffset()`
  `int`
  `maxUniformBufferRange()`
  `int`
  `maxVertexInputAttributeOffset()`
  `int`
  `maxVertexInputAttributes()`
  `int`
  `maxVertexInputBindings()`
  `int`
  `maxVertexInputBindingStride()`
  `int`
  `maxVertexOutputComponents()`
  `VulkanViewportDimensions`
  `maxViewportDimensions()`
  `int`
  `maxViewports()`
  `float`
  `minInterpolationOffset()`
  `long`
  `minMemoryMapAlignment()`
  `long`
  `minStorageBufferOffsetAlignment()`
  `long`
  `minTexelBufferOffsetAlignment()`
  `int`
  `minTexelGatherOffset()`
  `int`
  `minTexelOffset()`
  `long`
  `minUniformBufferOffsetAlignment()`
  `int`
  `mipmapPrecisionBits()`
  `long`
  `nonCoherentAtomSize()`
  `long`
  `optimalBufferCopyOffsetAlignment()`
  `long`
  `optimalBufferCopyRowPitchAlignment()`
  `float`
  `pointSizeGranularity()`
  `VulkanPointSizeRange`
  `pointSizeRange()`
  `int`
  `sampledImageColorSampleCounts()`
  `int`
  `sampledImageDepthSampleCounts()`
  `int`
  `sampledImageIntegerSampleCounts()`
  `int`
  `sampledImageStencilSampleCounts()`
  `long`
  `sparseAddressSpaceSize()`
  `boolean`
  `standardSampleLocations()`
  `int`
  `storageImageSampleCounts()`
  `boolean`
  `strictLines()`
  `int`
  `subPixelInterpolationOffsetBits()`
  `int`
  `subPixelPrecisionBits()`
  `int`
  `subTexelPrecisionBits()`
  `boolean`
  `timestampComputeAndGraphics()`
  `float`
  `timestampPeriod()`
  `String`
  `toString()`
  Prints the immutable value `VulkanPhysicalDeviceLimits` with attribute values.
  `VulkanViewportBoundsRange`
  `viewportBoundsRange()`
  `int`
  `viewportSubPixelBits()`
  `final VulkanPhysicalDeviceLimits`
  `withBufferImageGranularity(long value)`
  Copy the current immutable object by setting a value for the `bufferImageGranularity` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withDiscreteQueuePriorities(int value)`
  Copy the current immutable object by setting a value for the `discreteQueuePriorities` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withFramebufferColorSampleCounts(int value)`
  Copy the current immutable object by setting a value for the `framebufferColorSampleCounts` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withFramebufferDepthSampleCounts(int value)`
  Copy the current immutable object by setting a value for the `framebufferDepthSampleCounts` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withFramebufferNoAttachmentsSampleCounts(int value)`
  Copy the current immutable object by setting a value for the `framebufferNoAttachmentsSampleCounts` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withFramebufferStencilSampleCounts(int value)`
  Copy the current immutable object by setting a value for the `framebufferStencilSampleCounts` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withLineWidthGranularity(float value)`
  Copy the current immutable object by setting a value for the `lineWidthGranularity` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withLineWidthRange(VulkanLineWidthRange value)`
  Copy the current immutable object by setting a value for the `lineWidthRange` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxBoundDescriptorSets(int value)`
  Copy the current immutable object by setting a value for the `maxBoundDescriptorSets` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxClipDistances(int value)`
  Copy the current immutable object by setting a value for the `maxClipDistances` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxColorAttachments(int value)`
  Copy the current immutable object by setting a value for the `maxColorAttachments` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxCombinedClipAndCullDistances(int value)`
  Copy the current immutable object by setting a value for the `maxCombinedClipAndCullDistances` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxComputeSharedMemorySize(int value)`
  Copy the current immutable object by setting a value for the `maxComputeSharedMemorySize` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxComputeWorkGroupCount(VulkanComputeWorkGroupCount value)`
  Copy the current immutable object by setting a value for the `maxComputeWorkGroupCount` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxComputeWorkGroupInvocations(int value)`
  Copy the current immutable object by setting a value for the `maxComputeWorkGroupInvocations` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxComputeWorkGroupSize(VulkanComputeWorkGroupSize value)`
  Copy the current immutable object by setting a value for the `maxComputeWorkGroupSize` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxCullDistances(int value)`
  Copy the current immutable object by setting a value for the `maxCullDistances` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxDescriptorSetInputAttachments(int value)`
  Copy the current immutable object by setting a value for the `maxDescriptorSetInputAttachments` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxDescriptorSetSampledImages(int value)`
  Copy the current immutable object by setting a value for the `maxDescriptorSetSampledImages` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxDescriptorSetSamplers(int value)`
  Copy the current immutable object by setting a value for the `maxDescriptorSetSamplers` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxDescriptorSetStorageBuffers(int value)`
  Copy the current immutable object by setting a value for the `maxDescriptorSetStorageBuffers` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxDescriptorSetStorageBuffersDynamic(int value)`
  Copy the current immutable object by setting a value for the `maxDescriptorSetStorageBuffersDynamic` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxDescriptorSetStorageImages(int value)`
  Copy the current immutable object by setting a value for the `maxDescriptorSetStorageImages` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxDescriptorSetUniformBuffers(int value)`
  Copy the current immutable object by setting a value for the `maxDescriptorSetUniformBuffers` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxDescriptorSetUniformBuffersDynamic(int value)`
  Copy the current immutable object by setting a value for the `maxDescriptorSetUniformBuffersDynamic` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxDrawIndexedIndexValue(int value)`
  Copy the current immutable object by setting a value for the `maxDrawIndexedIndexValue` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxDrawIndirectCount(int value)`
  Copy the current immutable object by setting a value for the `maxDrawIndirectCount` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxFragmentCombinedOutputResources(int value)`
  Copy the current immutable object by setting a value for the `maxFragmentCombinedOutputResources` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxFragmentDualSrcAttachments(int value)`
  Copy the current immutable object by setting a value for the `maxFragmentDualSrcAttachments` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxFragmentInputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxFragmentInputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxFragmentOutputAttachments(int value)`
  Copy the current immutable object by setting a value for the `maxFragmentOutputAttachments` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxFramebufferHeight(int value)`
  Copy the current immutable object by setting a value for the `maxFramebufferHeight` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxFramebufferLayers(int value)`
  Copy the current immutable object by setting a value for the `maxFramebufferLayers` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxFramebufferWidth(int value)`
  Copy the current immutable object by setting a value for the `maxFramebufferWidth` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxGeometryInputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxGeometryInputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxGeometryOutputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxGeometryOutputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxGeometryOutputVertices(int value)`
  Copy the current immutable object by setting a value for the `maxGeometryOutputVertices` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxGeometryShaderInvocations(int value)`
  Copy the current immutable object by setting a value for the `maxGeometryShaderInvocations` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxGeometryTotalOutputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxGeometryTotalOutputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxImageArrayLayers(int value)`
  Copy the current immutable object by setting a value for the `maxImageArrayLayers` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxImageDimension1D(int value)`
  Copy the current immutable object by setting a value for the `maxImageDimension1D` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxImageDimension2D(int value)`
  Copy the current immutable object by setting a value for the `maxImageDimension2D` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxImageDimension3D(int value)`
  Copy the current immutable object by setting a value for the `maxImageDimension3D` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxImageDimensionCube(int value)`
  Copy the current immutable object by setting a value for the `maxImageDimensionCube` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxInterpolationOffset(float value)`
  Copy the current immutable object by setting a value for the `maxInterpolationOffset` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxMemoryAllocationCount(int value)`
  Copy the current immutable object by setting a value for the `maxMemoryAllocationCount` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxPerStageDescriptorInputAttachments(int value)`
  Copy the current immutable object by setting a value for the `maxPerStageDescriptorInputAttachments` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxPerStageDescriptorSampledImages(int value)`
  Copy the current immutable object by setting a value for the `maxPerStageDescriptorSampledImages` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxPerStageDescriptorSamplers(int value)`
  Copy the current immutable object by setting a value for the `maxPerStageDescriptorSamplers` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxPerStageDescriptorStorageBuffers(int value)`
  Copy the current immutable object by setting a value for the `maxPerStageDescriptorStorageBuffers` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxPerStageDescriptorStorageImages(int value)`
  Copy the current immutable object by setting a value for the `maxPerStageDescriptorStorageImages` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxPerStageDescriptorUniformBuffers(int value)`
  Copy the current immutable object by setting a value for the `maxPerStageDescriptorUniformBuffers` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxPerStageResources(int value)`
  Copy the current immutable object by setting a value for the `maxPerStageResources` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxPushConstantsSize(int value)`
  Copy the current immutable object by setting a value for the `maxPushConstantsSize` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxSampleMaskWords(int value)`
  Copy the current immutable object by setting a value for the `maxSampleMaskWords` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxSamplerAllocationCount(int value)`
  Copy the current immutable object by setting a value for the `maxSamplerAllocationCount` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxSamplerAnisotropy(float value)`
  Copy the current immutable object by setting a value for the `maxSamplerAnisotropy` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxSamplerLodBias(float value)`
  Copy the current immutable object by setting a value for the `maxSamplerLodBias` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxStorageBufferRange(int value)`
  Copy the current immutable object by setting a value for the `maxStorageBufferRange` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTessellationControlPerPatchOutputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxTessellationControlPerPatchOutputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTessellationControlPerVertexInputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxTessellationControlPerVertexInputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTessellationControlPerVertexOutputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxTessellationControlPerVertexOutputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTessellationControlTotalOutputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxTessellationControlTotalOutputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTessellationEvaluationInputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxTessellationEvaluationInputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTessellationEvaluationOutputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxTessellationEvaluationOutputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTessellationGenerationLevel(int value)`
  Copy the current immutable object by setting a value for the `maxTessellationGenerationLevel` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTessellationPatchSize(int value)`
  Copy the current immutable object by setting a value for the `maxTessellationPatchSize` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTexelBufferElements(int value)`
  Copy the current immutable object by setting a value for the `maxTexelBufferElements` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTexelGatherOffset(int value)`
  Copy the current immutable object by setting a value for the `maxTexelGatherOffset` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxTexelOffset(int value)`
  Copy the current immutable object by setting a value for the `maxTexelOffset` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxUniformBufferRange(int value)`
  Copy the current immutable object by setting a value for the `maxUniformBufferRange` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxVertexInputAttributeOffset(int value)`
  Copy the current immutable object by setting a value for the `maxVertexInputAttributeOffset` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxVertexInputAttributes(int value)`
  Copy the current immutable object by setting a value for the `maxVertexInputAttributes` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxVertexInputBindings(int value)`
  Copy the current immutable object by setting a value for the `maxVertexInputBindings` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxVertexInputBindingStride(int value)`
  Copy the current immutable object by setting a value for the `maxVertexInputBindingStride` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxVertexOutputComponents(int value)`
  Copy the current immutable object by setting a value for the `maxVertexOutputComponents` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxViewportDimensions(VulkanViewportDimensions value)`
  Copy the current immutable object by setting a value for the `maxViewportDimensions` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMaxViewports(int value)`
  Copy the current immutable object by setting a value for the `maxViewports` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMinInterpolationOffset(float value)`
  Copy the current immutable object by setting a value for the `minInterpolationOffset` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMinMemoryMapAlignment(long value)`
  Copy the current immutable object by setting a value for the `minMemoryMapAlignment` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMinStorageBufferOffsetAlignment(long value)`
  Copy the current immutable object by setting a value for the `minStorageBufferOffsetAlignment` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMinTexelBufferOffsetAlignment(long value)`
  Copy the current immutable object by setting a value for the `minTexelBufferOffsetAlignment` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMinTexelGatherOffset(int value)`
  Copy the current immutable object by setting a value for the `minTexelGatherOffset` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMinTexelOffset(int value)`
  Copy the current immutable object by setting a value for the `minTexelOffset` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMinUniformBufferOffsetAlignment(long value)`
  Copy the current immutable object by setting a value for the `minUniformBufferOffsetAlignment` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withMipmapPrecisionBits(int value)`
  Copy the current immutable object by setting a value for the `mipmapPrecisionBits` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withNonCoherentAtomSize(long value)`
  Copy the current immutable object by setting a value for the `nonCoherentAtomSize` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withOptimalBufferCopyOffsetAlignment(long value)`
  Copy the current immutable object by setting a value for the `optimalBufferCopyOffsetAlignment` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withOptimalBufferCopyRowPitchAlignment(long value)`
  Copy the current immutable object by setting a value for the `optimalBufferCopyRowPitchAlignment` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withPointSizeGranularity(float value)`
  Copy the current immutable object by setting a value for the `pointSizeGranularity` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withPointSizeRange(VulkanPointSizeRange value)`
  Copy the current immutable object by setting a value for the `pointSizeRange` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withSampledImageColorSampleCounts(int value)`
  Copy the current immutable object by setting a value for the `sampledImageColorSampleCounts` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withSampledImageDepthSampleCounts(int value)`
  Copy the current immutable object by setting a value for the `sampledImageDepthSampleCounts` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withSampledImageIntegerSampleCounts(int value)`
  Copy the current immutable object by setting a value for the `sampledImageIntegerSampleCounts` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withSampledImageStencilSampleCounts(int value)`
  Copy the current immutable object by setting a value for the `sampledImageStencilSampleCounts` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withSparseAddressSpaceSize(long value)`
  Copy the current immutable object by setting a value for the `sparseAddressSpaceSize` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withStandardSampleLocations(boolean value)`
  Copy the current immutable object by setting a value for the `standardSampleLocations` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withStorageImageSampleCounts(int value)`
  Copy the current immutable object by setting a value for the `storageImageSampleCounts` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withStrictLines(boolean value)`
  Copy the current immutable object by setting a value for the `strictLines` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withSubPixelInterpolationOffsetBits(int value)`
  Copy the current immutable object by setting a value for the `subPixelInterpolationOffsetBits` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withSubPixelPrecisionBits(int value)`
  Copy the current immutable object by setting a value for the `subPixelPrecisionBits` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withSubTexelPrecisionBits(int value)`
  Copy the current immutable object by setting a value for the `subTexelPrecisionBits` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withTimestampComputeAndGraphics(boolean value)`
  Copy the current immutable object by setting a value for the `timestampComputeAndGraphics` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withTimestampPeriod(float value)`
  Copy the current immutable object by setting a value for the `timestampPeriod` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withViewportBoundsRange(VulkanViewportBoundsRange value)`
  Copy the current immutable object by setting a value for the `viewportBoundsRange` attribute.
  `final VulkanPhysicalDeviceLimits`
  `withViewportSubPixelBits(int value)`
  Copy the current immutable object by setting a value for the `viewportSubPixelBits` attribute.

  ### Methods inherited from class Object

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

- ## Method Details

  - ### bufferImageGranularity

    public long bufferImageGranularity()
    Specified by:
      `bufferImageGranularity` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the granularity, in bytes, at which buffer or linear image resources, and optimal image resources can be bound to adjacent offsets in the same VkDeviceMemory object without aliasing.

  - ### discreteQueuePriorities

    public int discreteQueuePriorities()
    Specified by:
      `discreteQueuePriorities` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the number of discrete priorities that can be assigned to a queue based on the value of each member of VkDeviceQueueCreateInfo::pQueuePriorities. This must be at least 2, and levels must be spread evenly over the range, with at least one level at 1.0, and another at 0.0. For example, if this value is 2 bits then when linearly filtering between two levels, each level could: contribute: 0%, 33%, 66%, or 100% (this is just an example and the amount of contribution should be covered by different equations in the spec).

  - ### framebufferColorSampleCounts

    public int framebufferColorSampleCounts()
    Specified by:
      `framebufferColorSampleCounts` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      a bitmask1 of VkSampleCountFlagBits indicating the color sample counts that are supported for all framebuffer color attachments with floating- or fixed-point formats. There is no limit that specifies the color sample counts that are supported for all color attachments with integer formats.

  - ### framebufferDepthSampleCounts

    public int framebufferDepthSampleCounts()
    Specified by:
      `framebufferDepthSampleCounts` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      a bitmask1 of VkSampleCountFlagBits indicating the supported depth sample counts for all framebuffer depth/stencil attachments, when the format includes a depth component.

  - ### framebufferNoAttachmentsSampleCounts

    public int framebufferNoAttachmentsSampleCounts()
    Specified by:
      `framebufferNoAttachmentsSampleCounts` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      a bitmask1 of VkSampleCountFlagBits indicating the supported sample counts for a framebuffer with no attachments.

  - ### framebufferStencilSampleCounts

    public int framebufferStencilSampleCounts()
    Specified by:
      `framebufferStencilSampleCounts` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      a bitmask1 of VkSampleCountFlagBits indicating the supported stencil sample counts for all framebuffer depth/stencil attachments, when the format includes a stencil component.

  - ### lineWidthGranularity

    public float lineWidthGranularity()
    Specified by:
      `lineWidthGranularity` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the granularity of supported line widths. Not all line widths in the range defined by lineWidthRange are supported. This limit specifies the granularity (or increment) between successive supported line widths.

  - ### lineWidthRange

    public VulkanLineWidthRange lineWidthRange()
    Specified by:
      `lineWidthRange` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the range [minimum,maximum] of supported widths for lines. Values specified by the lineWidth member of the VkPipelineRasterizationStateCreateInfo or the lineWidth parameter to vkCmdSetLineWidth are clamped to this range.

  - ### maxBoundDescriptorSets

    public int maxBoundDescriptorSets()
    Specified by:
      `maxBoundDescriptorSets` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of descriptor sets that can be simultaneously used by a pipeline. All DescriptorSet decorations in shader modules must have a value less than maxBoundDescriptorSets.

  - ### maxClipDistances

    public int maxClipDistances()
    Specified by:
      `maxClipDistances` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of clip distances that can be used in a single shader stage. The size of any array declared with the ClipDistance built-in decoration in a shader module must be less than or equal to this limit.

  - ### maxColorAttachments

    public int maxColorAttachments()
    Specified by:
      `maxColorAttachments` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of color attachments that can be used by a subpass in a render pass. The colorAttachmentCount member of the VkSubpassDescription structure must be less than or equal to this limit.

  - ### maxCombinedClipAndCullDistances

    public int maxCombinedClipAndCullDistances()
    Specified by:
      `maxCombinedClipAndCullDistances` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum combined number of clip and cull distances that can be used in a single shader stage. The sum of the sizes of any pair of arrays declared with the ClipDistance and CullDistance built-in decoration used by a single shader stage in a shader module must be less than or equal to this limit.

  - ### maxComputeSharedMemorySize

    public int maxComputeSharedMemorySize()
    Specified by:
      `maxComputeSharedMemorySize` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum total storage size, in bytes, of all variables declared with the WorkgroupLocal storage class in shader modules (or with the shared storage qualifier in GLSL) in the compute shader stage.

  - ### maxComputeWorkGroupCount

    public VulkanComputeWorkGroupCount maxComputeWorkGroupCount()
    Specified by:
      `maxComputeWorkGroupCount` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of local workgroups that can be dispatched by a single dispatch command. These three values represent the maximum number of local workgroups for the X, Y, and Z dimensions, respectively. The workgroup count parameters to the dispatch commands must be less than or equal to the corresponding limit.

  - ### maxComputeWorkGroupInvocations

    public int maxComputeWorkGroupInvocations()
    Specified by:
      `maxComputeWorkGroupInvocations` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum total number of compute shader invocations in a single local workgroup. The product of the X, Y, and Z sizes as specified by the LocalSize execution mode in shader modules and by the object decorated by the WorkgroupSize decoration must be less than or equal to this limit.

  - ### maxComputeWorkGroupSize

    public VulkanComputeWorkGroupSize maxComputeWorkGroupSize()
    Specified by:
      `maxComputeWorkGroupSize` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum size of a local compute workgroup, per dimension. These three values represent the maximum local workgroup size in the X, Y, and Z dimensions, respectively. The x, y, and z sizes specified by the LocalSize execution mode and by the object decorated by the WorkgroupSize decoration in shader modules must be less than or equal to the corresponding limit.

  - ### maxCullDistances

    public int maxCullDistances()
    Specified by:
      `maxCullDistances` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of cull distances that can be used in a single shader stage. The size of any array declared with the CullDistance built-in decoration in a shader module must be less than or equal to this limit.

  - ### maxDescriptorSetInputAttachments

    public int maxDescriptorSetInputAttachments()
    Specified by:
      `maxDescriptorSetInputAttachments` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of input attachments that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit.

  - ### maxDescriptorSetSampledImages

    public int maxDescriptorSetSampledImages()
    Specified by:
      `maxDescriptorSetSampledImages` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of sampled images that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit.

  - ### maxDescriptorSetSamplers

    public int maxDescriptorSetSamplers()
    Specified by:
      `maxDescriptorSetSamplers` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of samplers that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type of VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit.

  - ### maxDescriptorSetStorageBuffersDynamic

    public int maxDescriptorSetStorageBuffersDynamic()
    Specified by:
      `maxDescriptorSetStorageBuffersDynamic` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of dynamic storage buffers that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit.

  - ### maxDescriptorSetStorageBuffers

    public int maxDescriptorSetStorageBuffers()
    Specified by:
      `maxDescriptorSetStorageBuffers` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of storage buffers that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit.

  - ### maxDescriptorSetStorageImages

    public int maxDescriptorSetStorageImages()
    Specified by:
      `maxDescriptorSetStorageImages` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of storage images that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit.

  - ### maxDescriptorSetUniformBuffersDynamic

    public int maxDescriptorSetUniformBuffersDynamic()
    Specified by:
      `maxDescriptorSetUniformBuffersDynamic` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of dynamic uniform buffers that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit.

  - ### maxDescriptorSetUniformBuffers

    public int maxDescriptorSetUniformBuffers()
    Specified by:
      `maxDescriptorSetUniformBuffers` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of uniform buffers that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit.

  - ### maxDrawIndexedIndexValue

    public int maxDrawIndexedIndexValue()
    Specified by:
      `maxDrawIndexedIndexValue` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum index value that can be used for indexed draw calls when using 32-bit indices. This excludes the primitive restart index value of 0xFFFFFFFF.

  - ### maxDrawIndirectCount

    public int maxDrawIndirectCount()
    Specified by:
      `maxDrawIndirectCount` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum draw count that is supported for indirect draw calls.

  - ### maxFragmentCombinedOutputResources

    public int maxFragmentCombinedOutputResources()
    Specified by:
      `maxFragmentCombinedOutputResources` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the total number of storage buffers, storage images, and output buffers which can be used in the fragment shader stage.

  - ### maxFragmentDualSrcAttachments

    public int maxFragmentDualSrcAttachments()
    Specified by:
      `maxFragmentDualSrcAttachments` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of output attachments which can be written to by the fragment shader stage when blending is enabled and one of the dual source blend modes is in use.

  - ### maxFragmentInputComponents

    public int maxFragmentInputComponents()
    Specified by:
      `maxFragmentInputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of components of input variables which can be provided as inputs to the fragment shader stage.

  - ### maxFragmentOutputAttachments

    public int maxFragmentOutputAttachments()
    Specified by:
      `maxFragmentOutputAttachments` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of output attachments which can be written to by the fragment shader stage.

  - ### maxFramebufferHeight

    public int maxFramebufferHeight()
    Specified by:
      `maxFramebufferHeight` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum height for a framebuffer. The height member of the VkFramebufferCreateInfo structure must be less than or equal to this limit.

  - ### maxFramebufferLayers

    public int maxFramebufferLayers()
    Specified by:
      `maxFramebufferLayers` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum layer count for a layered framebuffer. The layers member of the VkFramebufferCreateInfo structure must be less than or equal to this limit.

  - ### maxFramebufferWidth

    public int maxFramebufferWidth()
    Specified by:
      `maxFramebufferWidth` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum width for a framebuffer. The width member of the VkFramebufferCreateInfo structure must be less than or equal to this limit.

  - ### maxGeometryInputComponents

    public int maxGeometryInputComponents()
    Specified by:
      `maxGeometryInputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of components of input variables which can be provided as inputs to the geometry shader stage.

  - ### maxGeometryOutputComponents

    public int maxGeometryOutputComponents()
    Specified by:
      `maxGeometryOutputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of components of output variables which can be output from the geometry shader stage.

  - ### maxGeometryOutputVertices

    public int maxGeometryOutputVertices()
    Specified by:
      `maxGeometryOutputVertices` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of vertices which can be emitted by any geometry shader.

  - ### maxGeometryShaderInvocations

    public int maxGeometryShaderInvocations()
    Specified by:
      `maxGeometryShaderInvocations` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum invocation count supported for instanced geometry shaders. The value provided in the Invocations execution mode of shader modules must be less than or equal to this limit.

  - ### maxGeometryTotalOutputComponents

    public int maxGeometryTotalOutputComponents()
    Specified by:
      `maxGeometryTotalOutputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum total number of components of output, across all emitted vertices, which can be output from the geometry shader stage.

  - ### maxImageArrayLayers

    public int maxImageArrayLayers()
    Specified by:
      `maxImageArrayLayers` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of layers (arrayLayers) for an image.

  - ### maxImageDimension1D

    public int maxImageDimension1D()
    Specified by:
      `maxImageDimension1D` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum dimension (width) supported for all images created with an imageType of VK_IMAGE_TYPE_1D.

  - ### maxImageDimension2D

    public int maxImageDimension2D()
    Specified by:
      `maxImageDimension2D` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum dimension (width or height) supported for all images created with an imageType of VK_IMAGE_TYPE_2D and without VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT set in flags.

  - ### maxImageDimension3D

    public int maxImageDimension3D()
    Specified by:
      `maxImageDimension3D` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum dimension (width, height, or depth) supported for all images created with an imageType of VK_IMAGE_TYPE_3D.

  - ### maxImageDimensionCube

    public int maxImageDimensionCube()
    Specified by:
      `maxImageDimensionCube` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum dimension (width or height) supported for all images created with an imageType of VK_IMAGE_TYPE_2D and with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT set in flags.

  - ### maxInterpolationOffset

    public float maxInterpolationOffset()
    Specified by:
      `maxInterpolationOffset` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum positive offset value for the offset operand of the InterpolateAtOffset extended instruction.

  - ### maxMemoryAllocationCount

    public int maxMemoryAllocationCount()
    Specified by:
      `maxMemoryAllocationCount` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of device memory allocations, as created by vkAllocateMemory, which can simultaneously exist.

  - ### maxPerStageDescriptorInputAttachments

    public int maxPerStageDescriptorInputAttachments()
    Specified by:
      `maxPerStageDescriptorInputAttachments` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of input attachments that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit. A descriptor is accessible to a pipeline shader stage when the stageFlags member of the VkDescriptorSetLayoutBinding structure has the bit for that shader stage set. These are only supported for the fragment stage.

  - ### maxPerStageDescriptorSampledImages

    public int maxPerStageDescriptorSampledImages()
    Specified by:
      `maxPerStageDescriptorSampledImages` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of sampled images that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit. A descriptor is accessible to a pipeline shader stage when the stageFlags member of the VkDescriptorSetLayoutBinding structure has the bit for that shader stage set.

  - ### maxPerStageDescriptorSamplers

    public int maxPerStageDescriptorSamplers()
    Specified by:
      `maxPerStageDescriptorSamplers` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of samplers that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit. A descriptor is accessible to a shader stage when the stageFlags member of the VkDescriptorSetLayoutBinding structure has the bit for that shader stage set.

  - ### maxPerStageDescriptorStorageBuffers

    public int maxPerStageDescriptorStorageBuffers()
    Specified by:
      `maxPerStageDescriptorStorageBuffers` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of storage buffers that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit. A descriptor is accessible to a pipeline shader stage when the stageFlags member of the VkDescriptorSetLayoutBinding structure has the bit for that shader stage set.

  - ### maxPerStageDescriptorStorageImages

    public int maxPerStageDescriptorStorageImages()
    Specified by:
      `maxPerStageDescriptorStorageImages` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of storage images that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit. A descriptor is accessible to a pipeline shader stage when the stageFlags member of the VkDescriptorSetLayoutBinding structure has the bit for that shader stage set.

  - ### maxPerStageDescriptorUniformBuffers

    public int maxPerStageDescriptorUniformBuffers()
    Specified by:
      `maxPerStageDescriptorUniformBuffers` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of uniform buffers that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit. A descriptor is accessible to a shader stage when the stageFlags member of the VkDescriptorSetLayoutBinding structure has the bit for that shader stage set.

  - ### maxPerStageResources

    public int maxPerStageResources()
    Specified by:
      `maxPerStageResources` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of resources that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT bit set count against this limit. For the fragment shader stage the framebuffer color attachments also count against this limit.

  - ### maxPushConstantsSize

    public int maxPushConstantsSize()
    Specified by:
      `maxPushConstantsSize` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum size, in bytes, of the pool of push constant memory. For each of the push constant ranges indicated by the pPushConstantRanges member of the VkPipelineLayoutCreateInfo structure, (offset + size) must be less than or equal to this limit.

  - ### maxSampleMaskWords

    public int maxSampleMaskWords()
    Specified by:
      `maxSampleMaskWords` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of array elements of a variable decorated with the SampleMask built-in decoration.

  - ### maxSamplerAllocationCount

    public int maxSamplerAllocationCount()
    Specified by:
      `maxSamplerAllocationCount` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of sampler objects, as created by vkCreateSampler, which can simultaneously exist on a device.

  - ### maxSamplerAnisotropy

    public float maxSamplerAnisotropy()
    Specified by:
      `maxSamplerAnisotropy` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum degree of sampler anisotropy. The maximum degree of anisotropic filtering used for an image sampling operation is the minimum of the maxAnisotropy member of the VkSamplerCreateInfo structure and this limit.

  - ### maxSamplerLodBias

    public float maxSamplerLodBias()
    Specified by:
      `maxSamplerLodBias` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum absolute sampler LOD bias. The sum of the mipLodBias member of the VkSamplerCreateInfo structure and the Bias operand of image sampling operations in shader modules (or 0 if no Bias operand is provided to an image sampling operation) are clamped to the range [-maxSamplerLodBias,+maxSamplerLodBias].

  - ### maxStorageBufferRange

    public int maxStorageBufferRange()
    Specified by:
      `maxStorageBufferRange` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum value that can be specified in the range member of any VkDescriptorBufferInfo structures passed to a call to vkUpdateDescriptorSets for descriptors of type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC.

  - ### maxTessellationControlPerPatchOutputComponents

    public int maxTessellationControlPerPatchOutputComponents()
    Specified by:
      `maxTessellationControlPerPatchOutputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of components of per-patch output variables which can be output from the tessellation control shader stage.

  - ### maxTessellationControlPerVertexInputComponents

    public int maxTessellationControlPerVertexInputComponents()
    Specified by:
      `maxTessellationControlPerVertexInputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of components of input variables which can be provided as per-vertex inputs to the tessellation control shader stage.

  - ### maxTessellationControlPerVertexOutputComponents

    public int maxTessellationControlPerVertexOutputComponents()
    Specified by:
      `maxTessellationControlPerVertexOutputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of components of per-vertex output variables which can be output from the tessellation control shader stage.

  - ### maxTessellationControlTotalOutputComponents

    public int maxTessellationControlTotalOutputComponents()
    Specified by:
      `maxTessellationControlTotalOutputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum total number of components of per-vertex and per-patch output variables which can be output from the tessellation control shader stage.

  - ### maxTessellationEvaluationInputComponents

    public int maxTessellationEvaluationInputComponents()
    Specified by:
      `maxTessellationEvaluationInputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of components of input variables which can be provided as per-vertex inputs to the tessellation evaluation shader stage.

  - ### maxTessellationEvaluationOutputComponents

    public int maxTessellationEvaluationOutputComponents()
    Specified by:
      `maxTessellationEvaluationOutputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of components of per-vertex output variables which can be output from the tessellation evaluation shader stage.

  - ### maxTessellationGenerationLevel

    public int maxTessellationGenerationLevel()
    Specified by:
      `maxTessellationGenerationLevel` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum tessellation generation level supported by the fixed-function tessellation primitive generator.

  - ### maxTessellationPatchSize

    public int maxTessellationPatchSize()
    Specified by:
      `maxTessellationPatchSize` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum patch size, in vertices, of patches that can be processed by the tessellation control shader and tessellation primitive generator. The patchControlPoints member of the VkPipelineTessellationStateCreateInfo structure specified at pipeline creation time and the value provided in the OutputVertices execution mode of shader modules must be less than or equal to this limit.

  - ### maxTexelBufferElements

    public int maxTexelBufferElements()
    Specified by:
      `maxTexelBufferElements` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of addressable texels for a buffer view created on a buffer which was created with the VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT set in the usage member of the VkBufferCreateInfo structure.

  - ### maxTexelGatherOffset

    public int maxTexelGatherOffset()
    Specified by:
      `maxTexelGatherOffset` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum offset value for the Offset or ConstOffsets image operands of any of the OpImage*Gather image instructions.

  - ### maxTexelOffset

    public int maxTexelOffset()
    Specified by:
      `maxTexelOffset` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum offset value for the ConstOffset image operand of any of the OpImageSample* or OpImageFetch* image instructions.

  - ### maxUniformBufferRange

    public int maxUniformBufferRange()
    Specified by:
      `maxUniformBufferRange` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum value that can be specified in the range member of any VkDescriptorBufferInfo structures passed to a call to vkUpdateDescriptorSets for descriptors of type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC.

  - ### maxVertexInputAttributeOffset

    public int maxVertexInputAttributeOffset()
    Specified by:
      `maxVertexInputAttributeOffset` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum vertex input attribute offset that can be added to the vertex input binding stride. The offset member of the VkVertexInputAttributeDescription structure must be less than or equal to this limit.

  - ### maxVertexInputAttributes

    public int maxVertexInputAttributes()
    Specified by:
      `maxVertexInputAttributes` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of vertex input attributes that can be specified for a graphics pipeline. These are described in the array of VkVertexInputAttributeDescription structures that are provided at graphics pipeline creation time via the pVertexAttributeDescriptions member of the VkPipelineVertexInputStateCreateInfo structure.

  - ### maxVertexInputBindings

    public int maxVertexInputBindings()
    Specified by:
      `maxVertexInputBindings` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of vertex buffers that can be specified for providing vertex attributes to a graphics pipeline. These are described in the array of VkVertexInputBindingDescription structures that are provided at graphics pipeline creation time via the pVertexBindingDescriptions member of the VkPipelineVertexInputStateCreateInfo structure. The binding member of VkVertexInputBindingDescription must be less than this limit.

  - ### maxVertexInputBindingStride

    public int maxVertexInputBindingStride()
    Specified by:
      `maxVertexInputBindingStride` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum vertex input binding stride that can be specified in a vertex input binding. The stride member of the VkVertexInputBindingDescription structure must be less than or equal to this limit.

  - ### maxVertexOutputComponents

    public int maxVertexOutputComponents()
    Specified by:
      `maxVertexOutputComponents` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of components of output variables which can be output by a vertex shader.

  - ### maxViewportDimensions

    public VulkanViewportDimensions maxViewportDimensions()
    Specified by:
      `maxViewportDimensions` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      are the maximum viewport dimensions in the X (width) and Y (height) dimensions, respectively. The maximum viewport dimensions must be greater than or equal to the largest image which can be created and used as a framebuffer attachment.

  - ### maxViewports

    public int maxViewports()
    Specified by:
      `maxViewports` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the maximum number of active viewports. The viewportCount member of the VkPipelineViewportStateCreateInfo structure that is provided at pipeline creation must be less than or equal to this limit.

  - ### minInterpolationOffset

    public float minInterpolationOffset()
    Specified by:
      `minInterpolationOffset` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the minimum negative offset value for the offset operand of the InterpolateAtOffset extended instruction.

  - ### minMemoryMapAlignment

    public long minMemoryMapAlignment()
    Specified by:
      `minMemoryMapAlignment` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the minimum required alignment, in bytes, of host visible memory allocations within the host address space. When mapping a memory allocation with vkMapMemory, subtracting offset bytes from the returned pointer will always produce an integer multiple of this limit.

  - ### minStorageBufferOffsetAlignment

    public long minStorageBufferOffsetAlignment()
    Specified by:
      `minStorageBufferOffsetAlignment` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the minimum required alignment, in bytes, for the offset member of the VkDescriptorBufferInfo structure for storage buffers. When a descriptor of type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC is updated, the offset must be an integer multiple of this limit. Similarly, dynamic offsets for storage buffers must be multiples of this limit.

  - ### minTexelBufferOffsetAlignment

    public long minTexelBufferOffsetAlignment()
    Specified by:
      `minTexelBufferOffsetAlignment` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the minimum required alignment, in bytes, for the offset member of the VkBufferViewCreateInfo structure for texel buffers. When a buffer view is created for a buffer which was created with VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT set in the usage member of the VkBufferCreateInfo structure, the offset must be an integer multiple of this limit.

  - ### minTexelGatherOffset

    public int minTexelGatherOffset()
    Specified by:
      `minTexelGatherOffset` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the minimum offset value for the Offset or ConstOffsets image operands of any of the OpImage*Gather image instructions.

  - ### minTexelOffset

    public int minTexelOffset()
    Specified by:
      `minTexelOffset` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the minimum offset value for the ConstOffset image operand of any of the OpImageSample* or OpImageFetch* image instructions.

  - ### minUniformBufferOffsetAlignment

    public long minUniformBufferOffsetAlignment()
    Specified by:
      `minUniformBufferOffsetAlignment` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the minimum required alignment, in bytes, for the offset member of the VkDescriptorBufferInfo structure for uniform buffers. When a descriptor of type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC is updated, the offset must be an integer multiple of this limit. Similarly, dynamic offsets for uniform buffers must be multiples of this limit.

  - ### mipmapPrecisionBits

    public int mipmapPrecisionBits()
    Specified by:
      `mipmapPrecisionBits` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the number of bits of division that the LOD calculation for mipmap fetching get snapped to when determining the contribution from each mip level to the mip filtered results. 2mipmapPrecisionBits is the actual number of divisions.

  - ### nonCoherentAtomSize

    public long nonCoherentAtomSize()
    Specified by:
      `nonCoherentAtomSize` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the size and alignment in bytes that bounds concurrent access to host-mapped device memory.

  - ### optimalBufferCopyOffsetAlignment

    public long optimalBufferCopyOffsetAlignment()
    Specified by:
      `optimalBufferCopyOffsetAlignment` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the optimal buffer offset alignment in bytes for vkCmdCopyBufferToImage and vkCmdCopyImageToBuffer. The per texel alignment requirements are enforced, but applications should use the optimal alignment for optimal performance and power use.

  - ### optimalBufferCopyRowPitchAlignment

    public long optimalBufferCopyRowPitchAlignment()
    Specified by:
      `optimalBufferCopyRowPitchAlignment` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the optimal buffer row pitch alignment in bytes for vkCmdCopyBufferToImage and vkCmdCopyImageToBuffer. Row pitch is the number of bytes between texels with the same X coordinate in adjacent rows (Y coordinates differ by one). The per texel alignment requirements are enforced, but applications should use the optimal alignment for optimal performance and power use.

  - ### pointSizeGranularity

    public float pointSizeGranularity()
    Specified by:
      `pointSizeGranularity` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the granularity of supported point sizes. Not all point sizes in the range defined by pointSizeRange are supported. This limit specifies the granularity (or increment) between successive supported point sizes.

  - ### pointSizeRange

    public VulkanPointSizeRange pointSizeRange()
    Specified by:
      `pointSizeRange` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the range [minimum,maximum] of supported sizes for points. Values written to variables decorated with the PointSize built-in decoration are clamped to this range.

  - ### sampledImageColorSampleCounts

    public int sampledImageColorSampleCounts()
    Specified by:
      `sampledImageColorSampleCounts` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      a bitmask1 of VkSampleCountFlagBits indicating the sample counts supported for all 2D images created with VK_IMAGE_TILING_OPTIMAL, usage containing VK_IMAGE_USAGE_SAMPLED_BIT, and a non-integer color format.

  - ### sampledImageDepthSampleCounts

    public int sampledImageDepthSampleCounts()
    Specified by:
      `sampledImageDepthSampleCounts` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      a bitmask1 of VkSampleCountFlagBits indicating the sample counts supported for all 2D images created with VK_IMAGE_TILING_OPTIMAL, usage containing VK_IMAGE_USAGE_SAMPLED_BIT, and a depth format.

  - ### sampledImageIntegerSampleCounts

    public int sampledImageIntegerSampleCounts()
    Specified by:
      `sampledImageIntegerSampleCounts` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      a bitmask1 of VkSampleCountFlagBits indicating the sample counts supported for all 2D images created with VK_IMAGE_TILING_OPTIMAL, usage containing VK_IMAGE_USAGE_SAMPLED_BIT, and an integer color format.

  - ### sampledImageStencilSampleCounts

    public int sampledImageStencilSampleCounts()
    Specified by:
      `sampledImageStencilSampleCounts` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      a bitmask1 of VkSampleCountFlagBits indicating the sample supported for all 2D images created with VK_IMAGE_TILING_OPTIMAL, usage containing VK_IMAGE_USAGE_SAMPLED_BIT, and a stencil format.

  - ### sparseAddressSpaceSize

    public long sparseAddressSpaceSize()
    Specified by:
      `sparseAddressSpaceSize` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the total amount of address space available, in bytes, for sparse memory resources. This is an upper bound on the sum of the size of all sparse resources, regardless of whether any memory is bound to them.

  - ### standardSampleLocations

    public boolean standardSampleLocations()
    Specified by:
      `standardSampleLocations` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      specifies whether rasterization uses the standard sample locations as documented in Multisampling. If set to VK_TRUE, the implementation uses the documented sample locations. If set to VK_FALSE, the implementation may use different sample locations.

  - ### storageImageSampleCounts

    public int storageImageSampleCounts()
    Specified by:
      `storageImageSampleCounts` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      a bitmask1 of VkSampleCountFlagBits indicating the sample counts supported for all 2D images created with VK_IMAGE_TILING_OPTIMAL, and usage containing VK_IMAGE_USAGE_STORAGE_BIT.

  - ### strictLines

    public boolean strictLines()
    Specified by:
      `strictLines` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      specifies whether lines are rasterized according to the preferred method of rasterization. If set to VK_FALSE, lines may be rasterized under a relaxed set of rules. If set to VK_TRUE, lines are rasterized as per the strict definition.

  - ### subPixelInterpolationOffsetBits

    public int subPixelInterpolationOffsetBits()
    Specified by:
      `subPixelInterpolationOffsetBits` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the number of subpixel fractional bits that the x and y offsets to the InterpolateAtOffset extended instruction may be rounded to as fixed-point values.

  - ### subPixelPrecisionBits

    public int subPixelPrecisionBits()
    Specified by:
      `subPixelPrecisionBits` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the number of bits of subpixel precision in framebuffer coordinates xf and yf.

  - ### subTexelPrecisionBits

    public int subTexelPrecisionBits()
    Specified by:
      `subTexelPrecisionBits` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the number of bits of precision in the division along an axis of an image used for minification and magnification filters. 2subTexelPrecisionBits is the actual number of divisions along each axis of the image represented. Sub-texel values calculated during image sampling will snap to these locations when generating the filtered results.

  - ### timestampComputeAndGraphics

    public boolean timestampComputeAndGraphics()
    Specified by:
      `timestampComputeAndGraphics` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      specifies support for timestamps on all graphics and compute queues. If this limit is set to VK_TRUE, all queues that advertise the VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT in the VkQueueFamilyProperties::queueFlags support VkQueueFamilyProperties::timestampValidBits of at least 36.

  - ### timestampPeriod

    public float timestampPeriod()
    Specified by:
      `timestampPeriod` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the number of nanoseconds required for a timestamp query to be incremented by 1.

  - ### viewportBoundsRange

    public VulkanViewportBoundsRange viewportBoundsRange()
    Specified by:
      `viewportBoundsRange` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the [minimum, maximum] range that the corners of a viewport must be contained in. This range must be at least [-2 × size, 2 × size - 1], where size = max(maxViewportDimensions[0], maxViewportDimensions[1]). The intent of the viewportBoundsRange limit is to allow a maximum sized viewport to be arbitrarily shifted relative to the output target as long as at least some portion intersects. This would give a bounds limit of [-size + 1, 2 × size - 1] which would allow all possible non-empty-set intersections of the output target and the viewport. Since these numbers are typically powers of two, picking the signed number range using the smallest possible number of bits ends up with the specified range.

  - ### viewportSubPixelBits

    public int viewportSubPixelBits()
    Specified by:
      `viewportSubPixelBits` in interface `VulkanPhysicalDeviceLimitsType`
    Returns:
      the number of bits of subpixel precision for viewport bounds. The subpixel precision that floating-point viewport bounds are interpreted at is given by this limit.

  - ### withBufferImageGranularity

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

  - ### withDiscreteQueuePriorities

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

  - ### withFramebufferColorSampleCounts

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

  - ### withFramebufferDepthSampleCounts

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

  - ### withFramebufferNoAttachmentsSampleCounts

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

  - ### withFramebufferStencilSampleCounts

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

  - ### withLineWidthGranularity

    public final VulkanPhysicalDeviceLimits withLineWidthGranularity(float value)
    Copy the current immutable object by setting a value for the `lineWidthGranularity` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for lineWidthGranularity
    Returns:
      A modified copy or the `this` object

  - ### withLineWidthRange

    public final VulkanPhysicalDeviceLimits withLineWidthRange(VulkanLineWidthRange value)
    Copy the current immutable object by setting a value for the `lineWidthRange` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for lineWidthRange
    Returns:
      A modified copy or the `this` object

  - ### withMaxBoundDescriptorSets

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

  - ### withMaxClipDistances

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

  - ### withMaxColorAttachments

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

  - ### withMaxCombinedClipAndCullDistances

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

  - ### withMaxComputeSharedMemorySize

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

  - ### withMaxComputeWorkGroupCount

    public final VulkanPhysicalDeviceLimits withMaxComputeWorkGroupCount(VulkanComputeWorkGroupCount value)
    Copy the current immutable object by setting a value for the `maxComputeWorkGroupCount` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for maxComputeWorkGroupCount
    Returns:
      A modified copy or the `this` object

  - ### withMaxComputeWorkGroupInvocations

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

  - ### withMaxComputeWorkGroupSize

    public final VulkanPhysicalDeviceLimits withMaxComputeWorkGroupSize(VulkanComputeWorkGroupSize value)
    Copy the current immutable object by setting a value for the `maxComputeWorkGroupSize` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for maxComputeWorkGroupSize
    Returns:
      A modified copy or the `this` object

  - ### withMaxCullDistances

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

  - ### withMaxDescriptorSetInputAttachments

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

  - ### withMaxDescriptorSetSampledImages

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

  - ### withMaxDescriptorSetSamplers

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

  - ### withMaxDescriptorSetStorageBuffersDynamic

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

  - ### withMaxDescriptorSetStorageBuffers

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

  - ### withMaxDescriptorSetStorageImages

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

  - ### withMaxDescriptorSetUniformBuffersDynamic

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

  - ### withMaxDescriptorSetUniformBuffers

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

  - ### withMaxDrawIndexedIndexValue

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

  - ### withMaxDrawIndirectCount

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

  - ### withMaxFragmentCombinedOutputResources

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

  - ### withMaxFragmentDualSrcAttachments

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

  - ### withMaxFragmentInputComponents

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

  - ### withMaxFragmentOutputAttachments

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

  - ### withMaxFramebufferHeight

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

  - ### withMaxFramebufferLayers

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

  - ### withMaxFramebufferWidth

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

  - ### withMaxGeometryInputComponents

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

  - ### withMaxGeometryOutputComponents

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

  - ### withMaxGeometryOutputVertices

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

  - ### withMaxGeometryShaderInvocations

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

  - ### withMaxGeometryTotalOutputComponents

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

  - ### withMaxImageArrayLayers

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

  - ### withMaxImageDimension1D

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

  - ### withMaxImageDimension2D

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

  - ### withMaxImageDimension3D

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

  - ### withMaxImageDimensionCube

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

  - ### withMaxInterpolationOffset

    public final VulkanPhysicalDeviceLimits withMaxInterpolationOffset(float value)
    Copy the current immutable object by setting a value for the `maxInterpolationOffset` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for maxInterpolationOffset
    Returns:
      A modified copy or the `this` object

  - ### withMaxMemoryAllocationCount

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

  - ### withMaxPerStageDescriptorInputAttachments

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

  - ### withMaxPerStageDescriptorSampledImages

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

  - ### withMaxPerStageDescriptorSamplers

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

  - ### withMaxPerStageDescriptorStorageBuffers

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

  - ### withMaxPerStageDescriptorStorageImages

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

  - ### withMaxPerStageDescriptorUniformBuffers

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

  - ### withMaxPerStageResources

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

  - ### withMaxPushConstantsSize

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

  - ### withMaxSampleMaskWords

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

  - ### withMaxSamplerAllocationCount

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

  - ### withMaxSamplerAnisotropy

    public final VulkanPhysicalDeviceLimits withMaxSamplerAnisotropy(float value)
    Copy the current immutable object by setting a value for the `maxSamplerAnisotropy` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for maxSamplerAnisotropy
    Returns:
      A modified copy or the `this` object

  - ### withMaxSamplerLodBias

    public final VulkanPhysicalDeviceLimits withMaxSamplerLodBias(float value)
    Copy the current immutable object by setting a value for the `maxSamplerLodBias` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for maxSamplerLodBias
    Returns:
      A modified copy or the `this` object

  - ### withMaxStorageBufferRange

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

  - ### withMaxTessellationControlPerPatchOutputComponents

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

  - ### withMaxTessellationControlPerVertexInputComponents

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

  - ### withMaxTessellationControlPerVertexOutputComponents

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

  - ### withMaxTessellationControlTotalOutputComponents

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

  - ### withMaxTessellationEvaluationInputComponents

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

  - ### withMaxTessellationEvaluationOutputComponents

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

  - ### withMaxTessellationGenerationLevel

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

  - ### withMaxTessellationPatchSize

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

  - ### withMaxTexelBufferElements

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

  - ### withMaxTexelGatherOffset

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

  - ### withMaxTexelOffset

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

  - ### withMaxUniformBufferRange

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

  - ### withMaxVertexInputAttributeOffset

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

  - ### withMaxVertexInputAttributes

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

  - ### withMaxVertexInputBindings

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

  - ### withMaxVertexInputBindingStride

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

  - ### withMaxVertexOutputComponents

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

  - ### withMaxViewportDimensions

    public final VulkanPhysicalDeviceLimits withMaxViewportDimensions(VulkanViewportDimensions value)
    Copy the current immutable object by setting a value for the `maxViewportDimensions` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for maxViewportDimensions
    Returns:
      A modified copy or the `this` object

  - ### withMaxViewports

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

  - ### withMinInterpolationOffset

    public final VulkanPhysicalDeviceLimits withMinInterpolationOffset(float value)
    Copy the current immutable object by setting a value for the `minInterpolationOffset` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for minInterpolationOffset
    Returns:
      A modified copy or the `this` object

  - ### withMinMemoryMapAlignment

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

  - ### withMinStorageBufferOffsetAlignment

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

  - ### withMinTexelBufferOffsetAlignment

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

  - ### withMinTexelGatherOffset

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

  - ### withMinTexelOffset

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

  - ### withMinUniformBufferOffsetAlignment

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

  - ### withMipmapPrecisionBits

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

  - ### withNonCoherentAtomSize

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

  - ### withOptimalBufferCopyOffsetAlignment

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

  - ### withOptimalBufferCopyRowPitchAlignment

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

  - ### withPointSizeGranularity

    public final VulkanPhysicalDeviceLimits withPointSizeGranularity(float value)
    Copy the current immutable object by setting a value for the `pointSizeGranularity` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for pointSizeGranularity
    Returns:
      A modified copy or the `this` object

  - ### withPointSizeRange

    public final VulkanPhysicalDeviceLimits withPointSizeRange(VulkanPointSizeRange value)
    Copy the current immutable object by setting a value for the `pointSizeRange` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for pointSizeRange
    Returns:
      A modified copy or the `this` object

  - ### withSampledImageColorSampleCounts

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

  - ### withSampledImageDepthSampleCounts

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

  - ### withSampledImageIntegerSampleCounts

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

  - ### withSampledImageStencilSampleCounts

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

  - ### withSparseAddressSpaceSize

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

  - ### withStandardSampleLocations

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

  - ### withStorageImageSampleCounts

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

  - ### withStrictLines

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

  - ### withSubPixelInterpolationOffsetBits

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

  - ### withSubPixelPrecisionBits

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

  - ### withSubTexelPrecisionBits

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

  - ### withTimestampComputeAndGraphics

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

  - ### withTimestampPeriod

    public final VulkanPhysicalDeviceLimits withTimestampPeriod(float value)
    Copy the current immutable object by setting a value for the `timestampPeriod` attribute. A value strict bits equality used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for timestampPeriod
    Returns:
      A modified copy or the `this` object

  - ### withViewportBoundsRange

    public final VulkanPhysicalDeviceLimits withViewportBoundsRange(VulkanViewportBoundsRange value)
    Copy the current immutable object by setting a value for the `viewportBoundsRange` attribute. A shallow reference equality check is used to prevent copying of the same value by returning `this`.
    Parameters:
      `value` - A new value for viewportBoundsRange
    Returns:
      A modified copy or the `this` object

  - ### withViewportSubPixelBits

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

  - ### equals

    public boolean equals(Object another)
    This instance is equal to all instances of `VulkanPhysicalDeviceLimits` 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: `bufferImageGranularity`, `discreteQueuePriorities`, `framebufferColorSampleCounts`, `framebufferDepthSampleCounts`, `framebufferNoAttachmentsSampleCounts`, `framebufferStencilSampleCounts`, `lineWidthGranularity`, `lineWidthRange`, `maxBoundDescriptorSets`, `maxClipDistances`, `maxColorAttachments`, `maxCombinedClipAndCullDistances`, `maxComputeSharedMemorySize`, `maxComputeWorkGroupCount`, `maxComputeWorkGroupInvocations`, `maxComputeWorkGroupSize`, `maxCullDistances`, `maxDescriptorSetInputAttachments`, `maxDescriptorSetSampledImages`, `maxDescriptorSetSamplers`, `maxDescriptorSetStorageBuffersDynamic`, `maxDescriptorSetStorageBuffers`, `maxDescriptorSetStorageImages`, `maxDescriptorSetUniformBuffersDynamic`, `maxDescriptorSetUniformBuffers`, `maxDrawIndexedIndexValue`, `maxDrawIndirectCount`, `maxFragmentCombinedOutputResources`, `maxFragmentDualSrcAttachments`, `maxFragmentInputComponents`, `maxFragmentOutputAttachments`, `maxFramebufferHeight`, `maxFramebufferLayers`, `maxFramebufferWidth`, `maxGeometryInputComponents`, `maxGeometryOutputComponents`, `maxGeometryOutputVertices`, `maxGeometryShaderInvocations`, `maxGeometryTotalOutputComponents`, `maxImageArrayLayers`, `maxImageDimension1D`, `maxImageDimension2D`, `maxImageDimension3D`, `maxImageDimensionCube`, `maxInterpolationOffset`, `maxMemoryAllocationCount`, `maxPerStageDescriptorInputAttachments`, `maxPerStageDescriptorSampledImages`, `maxPerStageDescriptorSamplers`, `maxPerStageDescriptorStorageBuffers`, `maxPerStageDescriptorStorageImages`, `maxPerStageDescriptorUniformBuffers`, `maxPerStageResources`, `maxPushConstantsSize`, `maxSampleMaskWords`, `maxSamplerAllocationCount`, `maxSamplerAnisotropy`, `maxSamplerLodBias`, `maxStorageBufferRange`, `maxTessellationControlPerPatchOutputComponents`, `maxTessellationControlPerVertexInputComponents`, `maxTessellationControlPerVertexOutputComponents`, `maxTessellationControlTotalOutputComponents`, `maxTessellationEvaluationInputComponents`, `maxTessellationEvaluationOutputComponents`, `maxTessellationGenerationLevel`, `maxTessellationPatchSize`, `maxTexelBufferElements`, `maxTexelGatherOffset`, `maxTexelOffset`, `maxUniformBufferRange`, `maxVertexInputAttributeOffset`, `maxVertexInputAttributes`, `maxVertexInputBindings`, `maxVertexInputBindingStride`, `maxVertexOutputComponents`, `maxViewportDimensions`, `maxViewports`, `minInterpolationOffset`, `minMemoryMapAlignment`, `minStorageBufferOffsetAlignment`, `minTexelBufferOffsetAlignment`, `minTexelGatherOffset`, `minTexelOffset`, `minUniformBufferOffsetAlignment`, `mipmapPrecisionBits`, `nonCoherentAtomSize`, `optimalBufferCopyOffsetAlignment`, `optimalBufferCopyRowPitchAlignment`, `pointSizeGranularity`, `pointSizeRange`, `sampledImageColorSampleCounts`, `sampledImageDepthSampleCounts`, `sampledImageIntegerSampleCounts`, `sampledImageStencilSampleCounts`, `sparseAddressSpaceSize`, `standardSampleLocations`, `storageImageSampleCounts`, `strictLines`, `subPixelInterpolationOffsetBits`, `subPixelPrecisionBits`, `subTexelPrecisionBits`, `timestampComputeAndGraphics`, `timestampPeriod`, `viewportBoundsRange`, `viewportSubPixelBits`.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      hashCode value

  - ### toString

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

  - ### copyOf

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

  - ### builder

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

        VulkanPhysicalDeviceLimits.builder()
           .setBufferImageGranularity(long) // required bufferImageGranularity
           .setDiscreteQueuePriorities(int) // required discreteQueuePriorities
           .setFramebufferColorSampleCounts(int) // required framebufferColorSampleCounts
           .setFramebufferDepthSampleCounts(int) // required framebufferDepthSampleCounts
           .setFramebufferNoAttachmentsSampleCounts(int) // required framebufferNoAttachmentsSampleCounts
           .setFramebufferStencilSampleCounts(int) // required framebufferStencilSampleCounts
           .setLineWidthGranularity(float) // required lineWidthGranularity
           .setLineWidthRange(com.io7m.jcoronado.api.VulkanLineWidthRange) // required lineWidthRange
           .setMaxBoundDescriptorSets(int) // required maxBoundDescriptorSets
           .setMaxClipDistances(int) // required maxClipDistances
           .setMaxColorAttachments(int) // required maxColorAttachments
           .setMaxCombinedClipAndCullDistances(int) // required maxCombinedClipAndCullDistances
           .setMaxComputeSharedMemorySize(int) // required maxComputeSharedMemorySize
           .setMaxComputeWorkGroupCount(com.io7m.jcoronado.api.VulkanComputeWorkGroupCount) // required maxComputeWorkGroupCount
           .setMaxComputeWorkGroupInvocations(int) // required maxComputeWorkGroupInvocations
           .setMaxComputeWorkGroupSize(com.io7m.jcoronado.api.VulkanComputeWorkGroupSize) // required maxComputeWorkGroupSize
           .setMaxCullDistances(int) // required maxCullDistances
           .setMaxDescriptorSetInputAttachments(int) // required maxDescriptorSetInputAttachments
           .setMaxDescriptorSetSampledImages(int) // required maxDescriptorSetSampledImages
           .setMaxDescriptorSetSamplers(int) // required maxDescriptorSetSamplers
           .setMaxDescriptorSetStorageBuffersDynamic(int) // required maxDescriptorSetStorageBuffersDynamic
           .setMaxDescriptorSetStorageBuffers(int) // required maxDescriptorSetStorageBuffers
           .setMaxDescriptorSetStorageImages(int) // required maxDescriptorSetStorageImages
           .setMaxDescriptorSetUniformBuffersDynamic(int) // required maxDescriptorSetUniformBuffersDynamic
           .setMaxDescriptorSetUniformBuffers(int) // required maxDescriptorSetUniformBuffers
           .setMaxDrawIndexedIndexValue(int) // required maxDrawIndexedIndexValue
           .setMaxDrawIndirectCount(int) // required maxDrawIndirectCount
           .setMaxFragmentCombinedOutputResources(int) // required maxFragmentCombinedOutputResources
           .setMaxFragmentDualSrcAttachments(int) // required maxFragmentDualSrcAttachments
           .setMaxFragmentInputComponents(int) // required maxFragmentInputComponents
           .setMaxFragmentOutputAttachments(int) // required maxFragmentOutputAttachments
           .setMaxFramebufferHeight(int) // required maxFramebufferHeight
           .setMaxFramebufferLayers(int) // required maxFramebufferLayers
           .setMaxFramebufferWidth(int) // required maxFramebufferWidth
           .setMaxGeometryInputComponents(int) // required maxGeometryInputComponents
           .setMaxGeometryOutputComponents(int) // required maxGeometryOutputComponents
           .setMaxGeometryOutputVertices(int) // required maxGeometryOutputVertices
           .setMaxGeometryShaderInvocations(int) // required maxGeometryShaderInvocations
           .setMaxGeometryTotalOutputComponents(int) // required maxGeometryTotalOutputComponents
           .setMaxImageArrayLayers(int) // required maxImageArrayLayers
           .setMaxImageDimension1D(int) // required maxImageDimension1D
           .setMaxImageDimension2D(int) // required maxImageDimension2D
           .setMaxImageDimension3D(int) // required maxImageDimension3D
           .setMaxImageDimensionCube(int) // required maxImageDimensionCube
           .setMaxInterpolationOffset(float) // required maxInterpolationOffset
           .setMaxMemoryAllocationCount(int) // required maxMemoryAllocationCount
           .setMaxPerStageDescriptorInputAttachments(int) // required maxPerStageDescriptorInputAttachments
           .setMaxPerStageDescriptorSampledImages(int) // required maxPerStageDescriptorSampledImages
           .setMaxPerStageDescriptorSamplers(int) // required maxPerStageDescriptorSamplers
           .setMaxPerStageDescriptorStorageBuffers(int) // required maxPerStageDescriptorStorageBuffers
           .setMaxPerStageDescriptorStorageImages(int) // required maxPerStageDescriptorStorageImages
           .setMaxPerStageDescriptorUniformBuffers(int) // required maxPerStageDescriptorUniformBuffers
           .setMaxPerStageResources(int) // required maxPerStageResources
           .setMaxPushConstantsSize(int) // required maxPushConstantsSize
           .setMaxSampleMaskWords(int) // required maxSampleMaskWords
           .setMaxSamplerAllocationCount(int) // required maxSamplerAllocationCount
           .setMaxSamplerAnisotropy(float) // required maxSamplerAnisotropy
           .setMaxSamplerLodBias(float) // required maxSamplerLodBias
           .setMaxStorageBufferRange(int) // required maxStorageBufferRange
           .setMaxTessellationControlPerPatchOutputComponents(int) // required maxTessellationControlPerPatchOutputComponents
           .setMaxTessellationControlPerVertexInputComponents(int) // required maxTessellationControlPerVertexInputComponents
           .setMaxTessellationControlPerVertexOutputComponents(int) // required maxTessellationControlPerVertexOutputComponents
           .setMaxTessellationControlTotalOutputComponents(int) // required maxTessellationControlTotalOutputComponents
           .setMaxTessellationEvaluationInputComponents(int) // required maxTessellationEvaluationInputComponents
           .setMaxTessellationEvaluationOutputComponents(int) // required maxTessellationEvaluationOutputComponents
           .setMaxTessellationGenerationLevel(int) // required maxTessellationGenerationLevel
           .setMaxTessellationPatchSize(int) // required maxTessellationPatchSize
           .setMaxTexelBufferElements(int) // required maxTexelBufferElements
           .setMaxTexelGatherOffset(int) // required maxTexelGatherOffset
           .setMaxTexelOffset(int) // required maxTexelOffset
           .setMaxUniformBufferRange(int) // required maxUniformBufferRange
           .setMaxVertexInputAttributeOffset(int) // required maxVertexInputAttributeOffset
           .setMaxVertexInputAttributes(int) // required maxVertexInputAttributes
           .setMaxVertexInputBindings(int) // required maxVertexInputBindings
           .setMaxVertexInputBindingStride(int) // required maxVertexInputBindingStride
           .setMaxVertexOutputComponents(int) // required maxVertexOutputComponents
           .setMaxViewportDimensions(com.io7m.jcoronado.api.VulkanViewportDimensions) // required maxViewportDimensions
           .setMaxViewports(int) // required maxViewports
           .setMinInterpolationOffset(float) // required minInterpolationOffset
           .setMinMemoryMapAlignment(long) // required minMemoryMapAlignment
           .setMinStorageBufferOffsetAlignment(long) // required minStorageBufferOffsetAlignment
           .setMinTexelBufferOffsetAlignment(long) // required minTexelBufferOffsetAlignment
           .setMinTexelGatherOffset(int) // required minTexelGatherOffset
           .setMinTexelOffset(int) // required minTexelOffset
           .setMinUniformBufferOffsetAlignment(long) // required minUniformBufferOffsetAlignment
           .setMipmapPrecisionBits(int) // required mipmapPrecisionBits
           .setNonCoherentAtomSize(long) // required nonCoherentAtomSize
           .setOptimalBufferCopyOffsetAlignment(long) // required optimalBufferCopyOffsetAlignment
           .setOptimalBufferCopyRowPitchAlignment(long) // required optimalBufferCopyRowPitchAlignment
           .setPointSizeGranularity(float) // required pointSizeGranularity
           .setPointSizeRange(com.io7m.jcoronado.api.VulkanPointSizeRange) // required pointSizeRange
           .setSampledImageColorSampleCounts(int) // required sampledImageColorSampleCounts
           .setSampledImageDepthSampleCounts(int) // required sampledImageDepthSampleCounts
           .setSampledImageIntegerSampleCounts(int) // required sampledImageIntegerSampleCounts
           .setSampledImageStencilSampleCounts(int) // required sampledImageStencilSampleCounts
           .setSparseAddressSpaceSize(long) // required sparseAddressSpaceSize
           .setStandardSampleLocations(boolean) // required standardSampleLocations
           .setStorageImageSampleCounts(int) // required storageImageSampleCounts
           .setStrictLines(boolean) // required strictLines
           .setSubPixelInterpolationOffsetBits(int) // required subPixelInterpolationOffsetBits
           .setSubPixelPrecisionBits(int) // required subPixelPrecisionBits
           .setSubTexelPrecisionBits(int) // required subTexelPrecisionBits
           .setTimestampComputeAndGraphics(boolean) // required timestampComputeAndGraphics
           .setTimestampPeriod(float) // required timestampPeriod
           .setViewportBoundsRange(com.io7m.jcoronado.api.VulkanViewportBoundsRange) // required viewportBoundsRange
           .setViewportSubPixelBits(int) // required viewportSubPixelBits
           .build();

    Returns:
      A new VulkanPhysicalDeviceLimits builder