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"
  • 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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 of 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
    • of

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

      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