packages feed

vulkan 3.24.3 → 3.24.4

raw patch · 43 files changed

+5029/−277 lines, 43 files

Files

changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.24.4] - 2023-01-20+- Bump API version to v1.3.239+ ## [3.24.3] - 2022-12-28 - Bump API version to v1.3.238 
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.24.3"+version: "3.24.4" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan/CStruct/Extends.hs view
@@ -435,6 +435,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (PhysicalDeviceBorderColorSwizzleFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI)+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderPropertiesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)@@ -1117,6 +1119,7 @@   Extends DeviceCreateInfo PhysicalDevicePortabilitySubsetFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDevice4444FormatsFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceSubpassShadingFeaturesHUAWEI = ()+  Extends DeviceCreateInfo PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = ()   Extends DeviceCreateInfo PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeatures = ()@@ -1350,6 +1353,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDevicePortabilitySubsetFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDevice4444FormatsFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceSubpassShadingFeaturesHUAWEI = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeatures = ()@@ -1453,6 +1457,7 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceTexelBufferAlignmentProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceSubgroupSizeControlProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceSubpassShadingPropertiesHUAWEI = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceClusterCullingShaderPropertiesHUAWEI = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceLineRasterizationPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan11Properties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan12Properties = ()@@ -1948,6 +1953,7 @@   STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO -> go @PipelineShaderStageRequiredSubgroupSizeCreateInfo   STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI -> go @SubpassShadingPipelineCreateInfoHUAWEI   STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI -> go @PhysicalDeviceSubpassShadingPropertiesHUAWEI+  STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI -> go @PhysicalDeviceClusterCullingShaderPropertiesHUAWEI   STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO -> go @MemoryOpaqueCaptureAddressAllocateInfo   STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT -> go @PhysicalDeviceLineRasterizationFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT -> go @PhysicalDeviceLineRasterizationPropertiesEXT@@ -1986,6 +1992,7 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> go @PhysicalDevicePortabilitySubsetPropertiesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT -> go @PhysicalDevice4444FormatsFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI -> go @PhysicalDeviceSubpassShadingFeaturesHUAWEI+  STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI -> go @PhysicalDeviceClusterCullingShaderFeaturesHUAWEI   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT -> go @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT   STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR -> go @FragmentShadingRateAttachmentInfoKHR   STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR -> go @PipelineFragmentShadingRateStateCreateInfoKHR@@ -2424,6 +2431,7 @@ {-# complete (::&) :: PipelineShaderStageRequiredSubgroupSizeCreateInfo #-} {-# complete (::&) :: SubpassShadingPipelineCreateInfoHUAWEI #-} {-# complete (::&) :: PhysicalDeviceSubpassShadingPropertiesHUAWEI #-}+{-# complete (::&) :: PhysicalDeviceClusterCullingShaderPropertiesHUAWEI #-} {-# complete (::&) :: MemoryOpaqueCaptureAddressAllocateInfo #-} {-# complete (::&) :: PhysicalDeviceLineRasterizationFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceLineRasterizationPropertiesEXT #-}@@ -2462,6 +2470,7 @@ {-# complete (::&) :: PhysicalDevicePortabilitySubsetPropertiesKHR #-} {-# complete (::&) :: PhysicalDevice4444FormatsFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceSubpassShadingFeaturesHUAWEI #-}+{-# complete (::&) :: PhysicalDeviceClusterCullingShaderFeaturesHUAWEI #-} {-# complete (::&) :: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT #-} {-# complete (::&) :: FragmentShadingRateAttachmentInfoKHR #-} {-# complete (::&) :: PipelineFragmentShadingRateStateCreateInfoKHR #-}
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -2729,7 +2729,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDraw-pDepthAttachment-06181# If the current render pass --     instance was begun with@@ -4542,7 +4543,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawIndexed-pDepthAttachment-06181# If the current render --     pass instance was begun with@@ -5466,8 +5468,8 @@ -- -- -   #VUID-vkCmdDrawIndexed-None-07312# An index buffer /must/ be bound ----- -   #VUID-vkCmdDrawIndexed-robustBufferAccess2-07788# If---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+-- -   #VUID-vkCmdDrawIndexed-robustBufferAccess2-07825# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> --     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) + --     @offset@) /must/ be less than or equal to the size of the bound --     index buffer, with @indexSize@ being based on the type specified by@@ -6356,7 +6358,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawIndirect-pDepthAttachment-06181# If the current --     render pass instance was begun with@@ -8178,7 +8181,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181# If the --     current render pass instance was begun with@@ -9104,6 +9108,14 @@ -- -   #VUID-vkCmdDrawIndexedIndirect-None-07312# An index buffer /must/ be --     bound --+-- -   #VUID-vkCmdDrawIndexedIndirect-robustBufferAccess2-07825# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+--     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) ++--     @offset@) /must/ be less than or equal to the size of the bound+--     index buffer, with @indexSize@ being based on the type specified by+--     @indexType@, where the index buffer, @indexType@, and @offset@ are+--     specified via 'cmdBindIndexBuffer'+-- -- -   #VUID-vkCmdDrawIndexedIndirect-drawCount-00528# If @drawCount@ is --     greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/ be --     greater than or equal to@@ -11466,19 +11478,6 @@ --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' ----- -   #VUID-vkCmdCopyBufferToImage-bufferOffset-01558# If @dstImage@ does---     not have either a depth\/stencil or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the format’s texel block size------ -   #VUID-vkCmdCopyBufferToImage-bufferOffset-01559# If @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>--- -- -   #VUID-vkCmdCopyBufferToImage-srcImage-00199# If @dstImage@ is of --     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each --     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and@@ -11507,11 +11506,6 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height> --     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ ----- -   #VUID-vkCmdCopyBufferToImage-pRegions-07273# For each element of---     @pRegions@, @bufferOffset@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@--- -- -   #VUID-vkCmdCopyBufferToImage-pRegions-07274# For each element of --     @pRegions@, @imageOffset.x@ /must/ be a multiple of the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>@@ -11582,6 +11576,24 @@ --     and then multiplied by the texel block size of @dstImage@ /must/ be --     less than or equal to 231-1 --+-- -   #VUID-vkCmdCopyBufferToImage-bufferOffset-01558# If @dstImage@ does+--     not have either a depth\/stencil or a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the format’s texel block size+--+-- -   #VUID-vkCmdCopyBufferToImage-bufferOffset-01559# If @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the element size of the compatible format for the format+--     and the @aspectMask@ of the @imageSubresource@ as defined in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-07273# For each element of+--     @pRegions@, @bufferOffset@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+-- -- -   #VUID-vkCmdCopyBufferToImage-srcImage-04053# If @dstImage@ has a --     depth\/stencil format, the @bufferOffset@ member of any element of --     @pRegions@ /must/ be a multiple of @4@@@ -11823,19 +11835,6 @@ --     @commandBuffer@’s command pool’s queue family, as described in --     'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties' ----- -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-01558# If @srcImage@ does---     not have either a depth\/stencil or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the format’s texel block size------ -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-01559# If @srcImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>--- -- -   #VUID-vkCmdCopyImageToBuffer-srcImage-00199# If @srcImage@ is of --     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each --     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and@@ -11864,11 +11863,6 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height> --     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ ----- -   #VUID-vkCmdCopyImageToBuffer-pRegions-07273# For each element of---     @pRegions@, @bufferOffset@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@--- -- -   #VUID-vkCmdCopyImageToBuffer-pRegions-07274# For each element of --     @pRegions@, @imageOffset.x@ /must/ be a multiple of the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>@@ -11938,6 +11932,24 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width> --     and then multiplied by the texel block size of @srcImage@ /must/ be --     less than or equal to 231-1+--+-- -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-01558# If @srcImage@ does+--     not have either a depth\/stencil or a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the format’s texel block size+--+-- -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-01559# If @srcImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the element size of the compatible format for the format+--     and the @aspectMask@ of the @imageSubresource@ as defined in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-07273# For each element of+--     @pRegions@, @bufferOffset@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- -- -   #VUID-vkCmdCopyImageToBuffer-srcImage-04053# If @srcImage@ has a --     depth\/stencil format, the @bufferOffset@ member of any element of
src/Vulkan/Core10/DescriptorSet.hs view
@@ -1135,6 +1135,19 @@ -- -   #VUID-VkDescriptorImageInfo-imageView-06712# @imageView@ /must/ not --     be a 2D array image view created from a 3D image --+-- -   #VUID-VkDescriptorImageInfo-imageView-07795# If @imageView@ is a 2D+--     view created from a 3D image, then @descriptorType@ /must/ be+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',+--     or+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER'+--+-- -   #VUID-VkDescriptorImageInfo-imageView-07796# If @imageView@ is a 2D+--     view created from a 3D image, then the image /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT'+--     set+-- -- -   #VUID-VkDescriptorImageInfo-descriptorType-06713# If the --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-image2DViewOf3D image2DViewOf3D> --     feature is not enabled and @descriptorType@ is@@ -1646,18 +1659,6 @@ --     the @imageView@ member of each element of @pImageInfo@ /must/ have --     been created with --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT' set------ -   #VUID-VkWriteDescriptorSet-descriptorType-06710# If @descriptorType@---     is---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',---     or---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',---     each @imageView@ member of each element of @pImageInfo@ that is a 2D---     image view created from a 3D image /must/ have been created from an---     image created with---     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT'---     set -- -- -   #VUID-VkWriteDescriptorSet-descriptorType-02752# If @descriptorType@ --     is 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER',
src/Vulkan/Core10/Device.hs view
@@ -100,6 +100,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (PhysicalDeviceBorderColorSwizzleFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)@@ -846,6 +847,7 @@ --     'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures', --     'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT',+--     'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderFeaturesHUAWEI', --     'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD', --     'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', --     'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',@@ -1110,6 +1112,7 @@     | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -3191,17 +3191,17 @@     shaderStorageImageMultisample :: Bool   , -- | #features-shaderStorageImageReadWithoutFormat#     -- @shaderStorageImageReadWithoutFormat@ specifies whether storage images-    -- require a format qualifier to be specified when reading.-    -- @shaderStorageImageReadWithoutFormat@ applies only to formats listed in-    -- the+    -- and storage texel buffers require a format qualifier to be specified+    -- when reading. @shaderStorageImageReadWithoutFormat@ applies only to+    -- formats listed in the     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>     -- list.     shaderStorageImageReadWithoutFormat :: Bool   , -- | #features-shaderStorageImageWriteWithoutFormat#     -- @shaderStorageImageWriteWithoutFormat@ specifies whether storage images-    -- require a format qualifier to be specified when writing.-    -- @shaderStorageImageWriteWithoutFormat@ applies only to formats listed in-    -- the+    -- and storage texel buffers require a format qualifier to be specified+    -- when writing. @shaderStorageImageWriteWithoutFormat@ applies only to+    -- formats listed in the     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-without-shader-storage-format storage without format>     -- list.     shaderStorageImageWriteWithoutFormat :: Bool
src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs view
@@ -103,6 +103,7 @@ -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV', -- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT', -- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI', -- or 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect'. It is also -- suitable for passing as the @buffer@ member of -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsStreamNV',
src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs view
@@ -166,11 +166,11 @@ -- -- -   'PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' --     specifies that the pipeline will be used with a fragment shading---     rate attachment.+--     rate attachment and dynamic rendering. -- -- -   'PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' --     specifies that the pipeline will be used with a fragment density map---     attachment.+--     attachment and dynamic rendering. -- -- -   'PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT' specifies that --     pipeline libraries being linked into this library /should/ have link
src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs view
@@ -12,6 +12,7 @@                                                                                            , QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT                                                                                            , QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT                                                                                            , QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT+                                                                                           , QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI                                                                                            , QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT                                                                                            , QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT                                                                                            , ..@@ -169,6 +170,9 @@ -- of rendering otherwise remain unchanged. pattern QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000400 +-- No documentation found for Nested "VkQueryPipelineStatisticFlagBits" "VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI"+pattern QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = QueryPipelineStatisticFlagBits 0x00002000+ -- | 'QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT' specifies -- that queries managed by the pool will count the number of mesh shader -- invocations. The counter’s value is incremented every time the mesh@@ -232,6 +236,10 @@   ,     ( QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT     , "COMPUTE_SHADER_INVOCATIONS_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI+    , "CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI"     )   ,     ( QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT
src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs view
@@ -9,6 +9,7 @@                                                                      , SHADER_STAGE_COMPUTE_BIT                                                                      , SHADER_STAGE_ALL_GRAPHICS                                                                      , SHADER_STAGE_ALL+                                                                     , SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI                                                                      , SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI                                                                      , SHADER_STAGE_MESH_BIT_EXT                                                                      , SHADER_STAGE_TASK_BIT_EXT@@ -84,6 +85,10 @@ -- stages which are introduced by extensions. pattern SHADER_STAGE_ALL = ShaderStageFlagBits 0x7fffffff +-- | 'SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI' specifies the cluster culling+-- stage.+pattern SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = ShaderStageFlagBits 0x00080000+ -- No documentation found for Nested "VkShaderStageFlagBits" "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI" pattern SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = ShaderStageFlagBits 0x00004000 @@ -133,6 +138,10 @@   , (SHADER_STAGE_COMPUTE_BIT, "COMPUTE_BIT")   , (SHADER_STAGE_ALL_GRAPHICS, "ALL_GRAPHICS")   , (SHADER_STAGE_ALL, "ALL")+  ,+    ( SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI+    , "CLUSTER_CULLING_BIT_HUAWEI"+    )   ,     ( SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI     , "SUBPASS_SHADING_BIT_HUAWEI"
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -102,6 +102,8 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT                                                         , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT                                                         , STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT                                                         , STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT@@ -1018,6 +1020,8 @@ -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI', -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD', -- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',@@ -1761,6 +1765,12 @@ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = StructureType 1000411000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = StructureType 1000404001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = StructureType 1000404000+ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT" pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = StructureType 1000396009 @@ -3622,6 +3632,8 @@   , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT   , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT   , STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI   , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT   , STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT   , STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT@@ -4614,6 +4626,14 @@   ,     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT     , "PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI+    , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI+    , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI"     )   ,     ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
src/Vulkan/Core10/FuncPointers.hs view
@@ -56,13 +56,13 @@ -- -- = Description ----- @pfnReallocation@ /must/ return an allocation with enough space for--- @size@ bytes, and the contents of the original allocation from bytes--- zero to min(original size, new size) - 1 /must/ be preserved in the--- returned allocation. If @size@ is larger than the old size, the contents--- of the additional space are undefined. If satisfying these requirements--- involves creating a new allocation, then the old allocation /should/ be--- freed.+-- If the reallocation was successful, @pfnReallocation@ /must/ return an+-- allocation with enough space for @size@ bytes, and the contents of the+-- original allocation from bytes zero to min(original size, new size) - 1+-- /must/ be preserved in the returned allocation. If @size@ is larger than+-- the old size, the contents of the additional space are undefined. If+-- satisfying these requirements involves creating a new allocation, then+-- the old allocation /should/ be freed. -- -- If @pOriginal@ is @NULL@, then @pfnReallocation@ /must/ behave -- equivalently to a call to 'PFN_vkAllocationFunction' with the same
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -440,6 +440,7 @@ -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD', -- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',@@ -899,6 +900,7 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect', -- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndexedIndirectCount', -- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndexedIndirectCountAMD',
src/Vulkan/Core10/FundamentalTypes.hs-boot view
@@ -169,6 +169,7 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect', -- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndexedIndirectCount', -- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndexedIndirectCountAMD',
src/Vulkan/Core10/Handles.hs view
@@ -621,6 +621,8 @@ -- 'Vulkan.Extensions.VK_KHR_device_group.cmdDispatchBaseKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDraw',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterHUAWEI',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect', -- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndexedIndirectCount',@@ -900,6 +902,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect', -- 'Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count.cmdDrawIndexedIndirectCount', -- 'Vulkan.Extensions.VK_AMD_draw_indirect_count.cmdDrawIndexedIndirectCountAMD',
src/Vulkan/Core10/ImageView.hs view
@@ -933,6 +933,14 @@ --     @format@ indicated by @subresourceRange.aspectMask@, as defined in --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatible-planes> --+-- -   #VUID-VkImageViewCreateInfo-subresourceRange-07818# If+--     @subresourceRange.aspectMask@ contains any of+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     or+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT',+--     then it /must/ only have a single bit set+-- -- -   #VUID-VkImageViewCreateInfo-image-01762# If @image@ was not created --     with the --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'
src/Vulkan/Core10/OtherTypes.hs view
@@ -427,34 +427,6 @@ -- -- == Valid Usage ----- -   #VUID-VkImageMemoryBarrier-subresourceRange-01486#---     @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was---     created------ -   #VUID-VkImageMemoryBarrier-subresourceRange-01724# If---     @subresourceRange.levelCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS',---     @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@---     /must/ be less than or equal to the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-VkImageMemoryBarrier-subresourceRange-01488#---     @subresourceRange.baseArrayLayer@ /must/ be less than the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @image@ was created------ -   #VUID-VkImageMemoryBarrier-subresourceRange-01725# If---     @subresourceRange.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',---     @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@---     /must/ be less than or equal to the @arrayLayers@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-VkImageMemoryBarrier-image-01932# If @image@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object--- -- -   #VUID-VkImageMemoryBarrier-oldLayout-01208# If @srcQueueFamilyIndex@ --     and @dstQueueFamilyIndex@ define a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>@@ -649,43 +621,6 @@ --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' --     set ----- -   #VUID-VkImageMemoryBarrier-image-01671# If @image@ has a---     single-plane color format or is not /disjoint/, then the---     @aspectMask@ member of @subresourceRange@ /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkImageMemoryBarrier-image-01672# If @image@ has a---     multi-planar format and the image is /disjoint/, then the---     @aspectMask@ member of @subresourceRange@ /must/ include either at---     least one of---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     and---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT';---     or /must/ include---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkImageMemoryBarrier-image-01673# If @image@ has a---     multi-planar format with only two planes, then the @aspectMask@---     member of @subresourceRange@ /must/ not include---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'------ -   #VUID-VkImageMemoryBarrier-image-03319# If @image@ has a---     depth\/stencil format with both depth and stencil and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>---     feature is enabled, then the @aspectMask@ member of---     @subresourceRange@ /must/ include either or both---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-VkImageMemoryBarrier-image-03320# If @image@ has a---     depth\/stencil format with both depth and stencil and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>---     feature is not enabled, then the @aspectMask@ member of---     @subresourceRange@ /must/ include both---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'--- -- -   #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070# If --     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at --     least one /must/ not be a special queue family reserved for external@@ -788,6 +723,71 @@ --     feature is not enabled, @newLayout@ /must/ not be --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' --+-- -   #VUID-VkImageMemoryBarrier-subresourceRange-01486#+--     @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was+--     created+--+-- -   #VUID-VkImageMemoryBarrier-subresourceRange-01724# If+--     @subresourceRange.levelCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS',+--     @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@+--     /must/ be less than or equal to the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- -   #VUID-VkImageMemoryBarrier-subresourceRange-01488#+--     @subresourceRange.baseArrayLayer@ /must/ be less than the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @image@ was created+--+-- -   #VUID-VkImageMemoryBarrier-subresourceRange-01725# If+--     @subresourceRange.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',+--     @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@+--     /must/ be less than or equal to the @arrayLayers@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- -   #VUID-VkImageMemoryBarrier-image-01932# If @image@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkImageMemoryBarrier-image-01671# If @image@ has a+--     single-plane color format or is not /disjoint/, then the+--     @aspectMask@ member of @subresourceRange@ /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkImageMemoryBarrier-image-01672# If @image@ has a+--     multi-planar format and the image is /disjoint/, then the+--     @aspectMask@ member of @subresourceRange@ /must/ include either at+--     least one of+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     and+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT';+--     or /must/ include+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkImageMemoryBarrier-image-01673# If @image@ has a+--     multi-planar format with only two planes, then the @aspectMask@+--     member of @subresourceRange@ /must/ not include+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- -   #VUID-VkImageMemoryBarrier-image-03319# If @image@ has a+--     depth\/stencil format with both depth and stencil and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     feature is enabled, then the @aspectMask@ member of+--     @subresourceRange@ /must/ include either or both+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- -   #VUID-VkImageMemoryBarrier-image-03320# If @image@ has a+--     depth\/stencil format with both depth and stencil and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     feature is not enabled, then the @aspectMask@ member of+--     @subresourceRange@ /must/ include both+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+-- -- -   #VUID-VkImageMemoryBarrier-synchronization2-03857# If the --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2 synchronization2> --     feature is not enabled, and @image@ was created with a sharing mode@@ -1145,13 +1145,6 @@ --     contained within the corresponding vertex buffer binding, as --     described in --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fxvertex-input>------ -   #VUID-VkDrawIndexedIndirectCommand-indexSize-00553# (@indexSize@ ×---     (@firstIndex@ + @indexCount@) + @offset@) /must/ be less than or---     equal to the size of the bound index buffer, with @indexSize@ being---     based on the type specified by @indexType@, where the index buffer,---     @indexType@, and @offset@ are specified via---     'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' -- -- -   #VUID-VkDrawIndexedIndirectCommand-firstInstance-00554# If the --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-drawIndirectFirstInstance drawIndirectFirstInstance>
src/Vulkan/Core10/Pipeline.hs view
@@ -1050,6 +1050,12 @@ --     feature is not enabled, @stage@ /must/ not be --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' --+-- -   #VUID-VkPipelineShaderStageCreateInfo-clustercullingShader-07813# If+--     the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-clustercullingShader clustercullingShader>+--     feature is not enabled, @stage@ /must/ not be+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI'+-- -- -   #VUID-VkPipelineShaderStageCreateInfo-stage-00706# @stage@ /must/ --     not be --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_ALL_GRAPHICS',@@ -6079,6 +6085,18 @@ --     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV', --     'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@ --     /must/ be greater than @0@+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07814# If @flags@ includes+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT',+--     the pipeline includes a+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-complete complete set of state>+--     specified entirely by libraries, and each library was created with a+--     'Vulkan.Core10.Handles.PipelineLayout' created without+--     'Vulkan.Core10.Enums.PipelineLayoutCreateFlagBits.PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT',+--     then @layout@ /must/ be a valid+--     'Vulkan.Core10.Handles.PipelineLayout' that is+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-compatibility compatible>+--     with the layouts in those libraries -- -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-06729# If @flags@ includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT',
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -109,6 +109,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (PhysicalDeviceBorderColorSwizzleFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI)+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderPropertiesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)@@ -899,6 +901,7 @@     | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f@@ -1046,6 +1049,7 @@ --     either @NULL@ or a pointer to a valid instance of --     'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructurePropertiesKHR', --     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT',+--     'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI', --     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT', --     'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesNV', --     'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectPropertiesNV',@@ -1170,6 +1174,7 @@     | Just Refl <- eqT @e @PhysicalDeviceVulkan12Properties = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan11Properties = Just f     | Just Refl <- eqT @e @PhysicalDeviceLineRasterizationPropertiesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceClusterCullingShaderPropertiesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingPropertiesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubgroupSizeControlProperties = Just f     | Just Refl <- eqT @e @PhysicalDeviceTexelBufferAlignmentProperties = Just f
src/Vulkan/Core12/Enums/DriverId.hs view
@@ -24,6 +24,7 @@                                               , DRIVER_ID_MESA_VENUS                                               , DRIVER_ID_MESA_DOZEN                                               , DRIVER_ID_MESA_NVK+                                              , DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA                                               , ..                                               )) where @@ -136,6 +137,9 @@ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_NVK" pattern DRIVER_ID_MESA_NVK = DriverId 24 +-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA"+pattern DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = DriverId 25+ {-# COMPLETE   DRIVER_ID_AMD_PROPRIETARY   , DRIVER_ID_AMD_OPEN_SOURCE@@ -160,7 +164,8 @@   , DRIVER_ID_SAMSUNG_PROPRIETARY   , DRIVER_ID_MESA_VENUS   , DRIVER_ID_MESA_DOZEN-  , DRIVER_ID_MESA_NVK ::+  , DRIVER_ID_MESA_NVK+  , DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA ::     DriverId   #-} @@ -208,6 +213,10 @@   , (DRIVER_ID_MESA_VENUS, "MESA_VENUS")   , (DRIVER_ID_MESA_DOZEN, "MESA_DOZEN")   , (DRIVER_ID_MESA_NVK, "MESA_NVK")+  ,+    ( DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA+    , "IMAGINATION_OPEN_SOURCE_MESA"+    )   ]  instance Show DriverId where
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -832,7 +832,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181# If the current --     render pass instance was begun with@@ -2698,7 +2699,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181# If the --     current render pass instance was begun with@@ -3640,6 +3642,15 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07312# An index buffer --     /must/ be bound+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-robustBufferAccess2-07825# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+--     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) ++--     @offset@) /must/ be less than or equal to the size of the bound+--     index buffer, with @indexSize@ being based on the type specified by+--     @indexType@, where the index buffer, @indexType@, and @offset@ are+--     specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-stride-03142# @stride@ /must/ be --     a multiple of @4@ and /must/ be greater than or equal to
src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs view
@@ -404,13 +404,17 @@ --     image views or buffer views created with this format /can/ be used --     as --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>---     for read operations without specifying a format.+--     or+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers>+--     respectively for read operations without specifying a format. -- -- -   'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' specifies that --     image views or buffer views created with this format /can/ be used --     as --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>---     for write operations without specifying a format.+--     or+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers>+--     respectively for write operations without specifying a format. -- -- -   'FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' specifies that --     image views created with this format /can/ be used for depth@@ -702,7 +706,9 @@ -- | 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' specifies that image -- views or buffer views created with this format /can/ be used as -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>--- for read operations without specifying a format.+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers>+-- respectively for read operations without specifying a format. -- -- 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' specifies that buffer -- views created with this format /can/ be used as@@ -713,7 +719,9 @@ -- | 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' specifies that image -- views or buffer views created with this format /can/ be used as -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>--- for write operations without specifying a format.+-- or+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers>+-- respectively for write operations without specifying a format. -- -- 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' specifies that -- buffer views created with this format /can/ be used as
src/Vulkan/Core13/Enums/PipelineStageFlags2.hs view
@@ -54,6 +54,7 @@                                                                         , PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT                                                                         , PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT                                                                         , PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV+                                                                        , PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI                                                                         , PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT                                                                         , PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR                                                                         , PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI@@ -348,6 +349,8 @@ -- -   'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- -   'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'+--+-- -   'PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = PipelineStageFlagBits2 0x0000000000008000  -- | 'PIPELINE_STAGE_2_ALL_COMMANDS_BIT' specifies all operations performed@@ -396,6 +399,8 @@ -- -   'PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT'+--+-- -   'PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = PipelineStageFlagBits2 0x0000004000000000  -- | 'PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV' specifies the stage of the@@ -404,6 +409,10 @@ -- are performed. pattern PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = PipelineStageFlagBits2 0x0000000020000000 +-- | 'PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' specifies the+-- cluster culling shader stage.+pattern PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = PipelineStageFlagBits2 0x0000020000000000+ -- | 'PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' specifies the execution of -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#micromap micromap commands>. pattern PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = PipelineStageFlagBits2 0x0000000040000000@@ -562,6 +571,10 @@   ,     ( PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV     , "OPTICAL_FLOW_BIT_NV"+    )+  ,+    ( PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI+    , "CLUSTER_CULLING_SHADER_BIT_HUAWEI"     )   ,     ( PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs view
@@ -2399,20 +2399,6 @@ --     less than or equal to the height of the specified @imageSubresource@ --     of @dstImage@ ----- -   #VUID-VkCopyBufferToImageInfo2-bufferOffset-01558# If @dstImage@---     does not have either a depth\/stencil or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the format’s texel block size------ -   #VUID-VkCopyBufferToImageInfo2-bufferOffset-01559# If @dstImage@ has---     a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>--- -- -   #VUID-VkCopyBufferToImageInfo2-srcImage-00199# If @dstImage@ is of --     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each --     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and@@ -2441,11 +2427,6 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height> --     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ ----- -   #VUID-VkCopyBufferToImageInfo2-pRegions-07273# For each element of---     @pRegions@, @bufferOffset@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@--- -- -   #VUID-VkCopyBufferToImageInfo2-pRegions-07274# For each element of --     @pRegions@, @imageOffset.x@ /must/ be a multiple of the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>@@ -2516,6 +2497,25 @@ --     and then multiplied by the texel block size of @dstImage@ /must/ be --     less than or equal to 231-1 --+-- -   #VUID-VkCopyBufferToImageInfo2-bufferOffset-01558# If @dstImage@+--     does not have either a depth\/stencil or a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the format’s texel block size+--+-- -   #VUID-VkCopyBufferToImageInfo2-bufferOffset-01559# If @dstImage@ has+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the element size of the compatible format for the format+--     and the @aspectMask@ of the @imageSubresource@ as defined in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- -   #VUID-VkCopyBufferToImageInfo2-pRegions-07273# For each element of+--     @pRegions@, @bufferOffset@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+-- -- -   #VUID-VkCopyBufferToImageInfo2-srcImage-04053# If @dstImage@ has a --     depth\/stencil format, the @bufferOffset@ member of any element of --     @pRegions@ /must/ be a multiple of @4@@@ -2733,20 +2733,6 @@ --     less than or equal to the height of the specified @imageSubresource@ --     of @srcImage@ ----- -   #VUID-VkCopyImageToBufferInfo2-bufferOffset-01558# If @srcImage@---     does not have either a depth\/stencil or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the format’s texel block size------ -   #VUID-VkCopyImageToBufferInfo2-bufferOffset-01559# If @srcImage@ has---     a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>--- -- -   #VUID-VkCopyImageToBufferInfo2-srcImage-00199# If @srcImage@ is of --     type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each --     element of @pRegions@, @imageOffset.y@ /must/ be @0@ and@@ -2775,11 +2761,6 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height> --     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ ----- -   #VUID-VkCopyImageToBufferInfo2-pRegions-07273# For each element of---     @pRegions@, @bufferOffset@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@--- -- -   #VUID-VkCopyImageToBufferInfo2-pRegions-07274# For each element of --     @pRegions@, @imageOffset.x@ /must/ be a multiple of the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>@@ -2849,6 +2830,25 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width> --     and then multiplied by the texel block size of @srcImage@ /must/ be --     less than or equal to 231-1+--+-- -   #VUID-VkCopyImageToBufferInfo2-bufferOffset-01558# If @srcImage@+--     does not have either a depth\/stencil or a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the format’s texel block size+--+-- -   #VUID-VkCopyImageToBufferInfo2-bufferOffset-01559# If @srcImage@ has+--     a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the element size of the compatible format for the format+--     and the @aspectMask@ of the @imageSubresource@ as defined in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- -   #VUID-VkCopyImageToBufferInfo2-pRegions-07273# For each element of+--     @pRegions@, @bufferOffset@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- -- -   #VUID-VkCopyImageToBufferInfo2-srcImage-04053# If @srcImage@ has a --     depth\/stencil format, the @bufferOffset@ member of any element of
src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs view
@@ -455,6 +455,22 @@ --     or its @deviceRenderAreaCount@ member is equal to 0, --     @renderArea.offset.y@ /must/ be greater than or equal to 0 --+-- -   #VUID-VkRenderingInfo-pNext-07815# If the @pNext@ chain does not+--     contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0, the sum of+--     @renderArea.extent.width@ and @renderArea.offset.x@ /must/ be less+--     than or equal to+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferWidth>+--+-- -   #VUID-VkRenderingInfo-pNext-07816# If the @pNext@ chain does not+--     contain+--     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'+--     or its @deviceRenderAreaCount@ member is equal to 0, the sum of+--     @renderArea.extent.width@ and @renderArea.offset.y@ /must/ be less+--     than or equal to+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferWidth maxFramebufferHeight>+-- -- -   #VUID-VkRenderingInfo-pNext-06079# If the @pNext@ chain does not --     contain --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'@@ -838,6 +854,10 @@ --     height greater than or equal to --     \(\left\lceil{\frac{pDeviceRenderAreas_{y}+pDeviceRenderAreas_{height}}{shadingRateAttachmentTexelSize_{height}}}\right\rceil\) --     for each element of @pDeviceRenderAreas@+--+-- -   #VUID-VkRenderingInfo-layerCount-07817# @layerCount@ /must/ be less+--     than or equal to+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxFramebufferLayers maxFramebufferLayers> -- -- -   #VUID-VkRenderingInfo-imageView-06123# If the @imageView@ member of --     a
src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs view
@@ -1614,6 +1614,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -1627,6 +1628,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -1998,6 +2000,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -2011,6 +2014,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -2562,6 +2566,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -2575,6 +2580,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -2946,6 +2952,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -2959,6 +2966,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -3140,34 +3148,6 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT', --     or one of @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages ----- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01486#---     @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was---     created------ -   #VUID-VkImageMemoryBarrier2-subresourceRange-01724# If---     @subresourceRange.levelCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS',---     @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@---     /must/ be less than or equal to the @mipLevels@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-VkImageMemoryBarrier2-subresourceRange-01488#---     @subresourceRange.baseArrayLayer@ /must/ be less than the---     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'---     when @image@ was created------ -   #VUID-VkImageMemoryBarrier2-subresourceRange-01725# If---     @subresourceRange.layerCount@ is not---     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',---     @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@---     /must/ be less than or equal to the @arrayLayers@ specified in---     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created------ -   #VUID-VkImageMemoryBarrier2-image-01932# If @image@ is non-sparse---     then it /must/ be bound completely and contiguously to a single---     'Vulkan.Core10.Handles.DeviceMemory' object--- -- -   #VUID-VkImageMemoryBarrier2-oldLayout-01208# If --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>@@ -3362,43 +3342,6 @@ --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' --     set ----- -   #VUID-VkImageMemoryBarrier2-image-01671# If @image@ has a---     single-plane color format or is not /disjoint/, then the---     @aspectMask@ member of @subresourceRange@ /must/ be---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkImageMemoryBarrier2-image-01672# If @image@ has a---     multi-planar format and the image is /disjoint/, then the---     @aspectMask@ member of @subresourceRange@ /must/ include either at---     least one of---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',---     and---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT';---     or /must/ include---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'------ -   #VUID-VkImageMemoryBarrier2-image-01673# If @image@ has a---     multi-planar format with only two planes, then the @aspectMask@---     member of @subresourceRange@ /must/ not include---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'------ -   #VUID-VkImageMemoryBarrier2-image-03319# If @image@ has a---     depth\/stencil format with both depth and stencil and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>---     feature is enabled, then the @aspectMask@ member of---     @subresourceRange@ /must/ include either or both---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'------ -   #VUID-VkImageMemoryBarrier2-image-03320# If @image@ has a---     depth\/stencil format with both depth and stencil and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>---     feature is not enabled, then the @aspectMask@ member of---     @subresourceRange@ /must/ include both---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'--- -- -   #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070# If --     @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at --     least one /must/ not be a special queue family reserved for external@@ -3501,6 +3444,71 @@ --     feature is not enabled, @newLayout@ /must/ not be --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' --+-- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01486#+--     @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@+--     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was+--     created+--+-- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01724# If+--     @subresourceRange.levelCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS',+--     @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@+--     /must/ be less than or equal to the @mipLevels@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01488#+--     @subresourceRange.baseArrayLayer@ /must/ be less than the+--     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+--     when @image@ was created+--+-- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01725# If+--     @subresourceRange.layerCount@ is not+--     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS',+--     @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@+--     /must/ be less than or equal to the @arrayLayers@ specified in+--     'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created+--+-- -   #VUID-VkImageMemoryBarrier2-image-01932# If @image@ is non-sparse+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-VkImageMemoryBarrier2-image-01671# If @image@ has a+--     single-plane color format or is not /disjoint/, then the+--     @aspectMask@ member of @subresourceRange@ /must/ be+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-image-01672# If @image@ has a+--     multi-planar format and the image is /disjoint/, then the+--     @aspectMask@ member of @subresourceRange@ /must/ include either at+--     least one of+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+--     and+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT';+--     or /must/ include+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-image-01673# If @image@ has a+--     multi-planar format with only two planes, then the @aspectMask@+--     member of @subresourceRange@ /must/ not include+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-image-03319# If @image@ has a+--     depth\/stencil format with both depth and stencil and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     feature is enabled, then the @aspectMask@ member of+--     @subresourceRange@ /must/ include either or both+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- -   #VUID-VkImageMemoryBarrier2-image-03320# If @image@ has a+--     depth\/stencil format with both depth and stencil and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-separateDepthStencilLayouts separateDepthStencilLayouts>+--     feature is not enabled, then the @aspectMask@ member of+--     @subresourceRange@ /must/ include both+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+-- -- -   #VUID-VkImageMemoryBarrier2-srcStageMask-03854# If either --     @srcStageMask@ or @dstStageMask@ includes --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT',@@ -3950,6 +3958,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -3963,6 +3972,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -4334,6 +4344,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --@@ -4347,6 +4358,7 @@ --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', --     or --     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' --
src/Vulkan/Dynamic.hs view
@@ -922,6 +922,8 @@   , pVkCmdDispatch :: FunPtr (Ptr CommandBuffer_T -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ())   , pVkCmdDispatchIndirect :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> IO ())   , pVkCmdSubpassShadingHUAWEI :: FunPtr (Ptr CommandBuffer_T -> IO ())+  , pVkCmdDrawClusterHUAWEI :: FunPtr (Ptr CommandBuffer_T -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ())+  , pVkCmdDrawClusterIndirectHUAWEI :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> IO ())   , pVkCmdCopyBuffer :: FunPtr (Ptr CommandBuffer_T -> ("srcBuffer" ::: Buffer) -> ("dstBuffer" ::: Buffer) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr BufferCopy) -> IO ())   , pVkCmdCopyImage :: FunPtr (Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageCopy) -> IO ())   , pVkCmdBlitImage :: FunPtr (Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageBlit) -> Filter -> IO ())@@ -1696,7 +1698,14 @@     nullFunPtr     nullFunPtr     nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr  foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1819,6 +1828,8 @@   vkCmdDispatch <- getDeviceProcAddr' handle (Ptr "vkCmdDispatch"#)   vkCmdDispatchIndirect <- getDeviceProcAddr' handle (Ptr "vkCmdDispatchIndirect"#)   vkCmdSubpassShadingHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdSubpassShadingHUAWEI"#)+  vkCmdDrawClusterHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdDrawClusterHUAWEI"#)+  vkCmdDrawClusterIndirectHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdDrawClusterIndirectHUAWEI"#)   vkCmdCopyBuffer <- getDeviceProcAddr' handle (Ptr "vkCmdCopyBuffer"#)   vkCmdCopyImage <- getDeviceProcAddr' handle (Ptr "vkCmdCopyImage"#)   vkCmdBlitImage <- getDeviceProcAddr' handle (Ptr "vkCmdBlitImage"#)@@ -2324,6 +2335,8 @@     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()) vkCmdDispatch)     (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> IO ()) vkCmdDispatchIndirect)     (castFunPtr @_ @(Ptr CommandBuffer_T -> IO ()) vkCmdSubpassShadingHUAWEI)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()) vkCmdDrawClusterHUAWEI)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> IO ()) vkCmdDrawClusterIndirectHUAWEI)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcBuffer" ::: Buffer) -> ("dstBuffer" ::: Buffer) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr BufferCopy) -> IO ()) vkCmdCopyBuffer)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageCopy) -> IO ()) vkCmdCopyImage)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageBlit) -> Filter -> IO ()) vkCmdBlitImage)
src/Vulkan/Extensions.hs view
@@ -151,6 +151,7 @@                           , module Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1                           , module Vulkan.Extensions.VK_GOOGLE_surfaceless_query                           , module Vulkan.Extensions.VK_GOOGLE_user_type+                          , module Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader                           , module Vulkan.Extensions.VK_HUAWEI_invocation_mask                           , module Vulkan.Extensions.VK_HUAWEI_subpass_shading                           , module Vulkan.Extensions.VK_IMG_filter_cubic@@ -461,6 +462,7 @@ import Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1 import Vulkan.Extensions.VK_GOOGLE_surfaceless_query import Vulkan.Extensions.VK_GOOGLE_user_type+import Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader import Vulkan.Extensions.VK_HUAWEI_invocation_mask import Vulkan.Extensions.VK_HUAWEI_subpass_shading import Vulkan.Extensions.VK_IMG_filter_cubic
src/Vulkan/Extensions/Dependencies.hs view
@@ -110,6 +110,7 @@ import Vulkan.Extensions.VK_GGP_stream_descriptor_surface (pattern GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_GOOGLE_display_timing (pattern GOOGLE_DISPLAY_TIMING_EXTENSION_NAME) import Vulkan.Extensions.VK_GOOGLE_surfaceless_query (pattern GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME)+import Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (pattern HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME) import Vulkan.Extensions.VK_HUAWEI_invocation_mask (pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME) import Vulkan.Extensions.VK_HUAWEI_subpass_shading (pattern HUAWEI_SUBPASS_SHADING_EXTENSION_NAME) import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME)@@ -812,6 +813,7 @@     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     , KHR_MAINTENANCE_3_EXTENSION_NAME     ]+  HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME -> [EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME]   EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME ->     [ EXT_MEMORY_PRIORITY_EXTENSION_NAME
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs view
@@ -2788,7 +2788,7 @@ -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@. -- Otherwise, this state is specified by the--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@coverageToColorLocation@+-- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV'::@coverageToColorLocation@ -- value used to create the currently active pipeline. -- -- == Valid Usage
src/Vulkan/Extensions/VK_EXT_mesh_shader.hs view
@@ -1120,7 +1120,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06181# If the current --     render pass instance was begun with@@ -2917,7 +2918,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06181# If the --     current render pass instance was begun with@@ -4704,7 +4706,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06181# If --     the current render pass instance was begun with
src/Vulkan/Extensions/VK_EXT_multi_draw.hs view
@@ -985,7 +985,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181# If the current --     render pass instance was begun with@@ -2807,7 +2808,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181# If the --     current render pass instance was begun with@@ -3732,16 +3734,18 @@ -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07312# An index buffer /must/ be --     bound --+-- -   #VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-07825# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>+--     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) ++--     @offset@) /must/ be less than or equal to the size of the bound+--     index buffer, with @indexSize@ being based on the type specified by+--     @indexType@, where the index buffer, @indexType@, and @offset@ are+--     specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'+-- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-04937# The --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw> --     feature /must/ be enabled------ -   #VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938# (@indexSize@ ×---     (@firstIndex@ + @indexCount@) + @offset@) /must/ be less than or---     equal to the size of the bound index buffer, with @indexSize@ being---     based on the type specified by @indexType@, where the index buffer,---     @indexType@, and @offset@ are specified via---     'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939# @drawCount@ /must/ --     be less than
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -2224,7 +2224,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181# If the --     current render pass instance was begun with
+ src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs view
@@ -0,0 +1,4138 @@+{-# language CPP #-}+-- | = Name+--+-- VK_HUAWEI_cluster_culling_shader - device extension+--+-- == VK_HUAWEI_cluster_culling_shader+--+-- [__Name String__]+--     @VK_HUAWEI_cluster_culling_shader@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     405+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+-- [__Contact__]+--+--     -   Yuchang Wang+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_cluster_culling_shader] @richard_Wang2%0A*Here describe the issue or question you have about the VK_HUAWEI_cluster_culling_shader extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_HUAWEI_cluster_culling_shader.adoc VK_HUAWEI_cluster_culling_shader>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-11-17+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/HUAWEI/SPV_HUAWEI_cluster_culling_shader.html SPV_HUAWEI_cluster_culling_shader>.+--+--     -   This extension provides API support for+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/huawei/GLSL_HUAWEI_cluster_culling_shader.txt GL_HUAWEI_cluster_culling_shader>.+--+-- [__Contributors__]+--+--     -   Yuchang Wang, Huawei+--+--     -   Juntao Li, Huawei+--+--     -   Pan Gao, Huawei+--+--     -   Jie Cao, Huawei+--+--     -   Yunjin Zhang, Huawei+--+--     -   Shujie Zhou, Huawei+--+--     -   Chaojun Wang, Huawei+--+--     -   Jiajun Hu, Huawei+--+--     -   Cong Zhang, Huawei+--+-- == Description+--+-- Cluster Culling Shader(CCS) is similar to the existing compute shader;+-- its main purpose is to provide an execution environment in order to+-- perform coarse-level geometry culling and level-of-detail selection more+-- efficiently on GPU.+--+-- The traditional 2-pass GPU culling solution using compute shader needs a+-- pipeline barrier between compute pipeline and graphics pipeline,+-- sometimes, in order to optimize performance, an additional compaction+-- process may also be required. this extension improve the above mentioned+-- shortcomings which can allow compute shader directly emit visible+-- clusters to following graphics pipeline.+--+-- A set of new built-in output variables are used to express visible+-- cluster, in addition, a new built-in function is used to emit these+-- variables from CCS to IA stage, then IA can use these variables to+-- fetches vertices of visible cluster and drive vertex shader to shading+-- these vertices. As stated above, both IA and vertex shader are+-- preserved, vertex shader still used for vertices position shading,+-- instead of directly outputting a set of transformed vertices from+-- compute shader, this makes CCS more suitable for mobile GPUs.+--+-- == New Commands+--+-- -   'cmdDrawClusterHUAWEI'+--+-- -   'cmdDrawClusterIndirectHUAWEI'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI'+--+-- == New Enum Constants+--+-- -   'HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME'+--+-- -   'HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'+--+-- -   Extending+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits':+--+--     -   'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI'+--+-- -   Extending+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':+--+--     -   'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI'+--+-- == New Built-In Variables+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-indexcounthuawei IndexCountHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-vertexcounthuawei VertexCountHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecounthuawei InstanceCountHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-firstindexhuawei FirstIndexHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-firstvertexhuawei FirstVertexHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-vertexoffsethuawei VertexOffsetHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-firstinstancehuawei FirstInstanceHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clusteridhuawei ClusterIdHUAWEI>+--+-- == New SPIR-V Capability+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ClusterCullingShadingHUAWEI ClusterCullingShadingHUAWEI>+--+-- == Sample code+--+-- Example of cluster culling in a GLSL shader+--+-- > #extension GL_HUAWEI_cluster_culling_shader: enable+-- >+-- > #define GPU_WARP_SIZE                   32+-- > #define GPU_GROUP_SIZE                  GPU_WARP_SIZE+-- >+-- > #define GPU_CLUSTER_PER_INVOCATION      1+-- > #define GPU_CLUSTER_PER_WORKGROUP       (GPU_GROUP_SIZE * GPU_CLUSTER_PER_INVOCATION)+-- >+-- > // Number of threads per workgroup+-- > // - 1D only+-- > // - warpsize = 32+-- > layout(local_size_x=GPU_GROUP_SIZE, local_size_y=1, local_size_z=1) in;+-- >+-- >+-- > #define GPU_CLUSTER_DESCRIPTOR_BINDING      0+-- > #define GPU_DRAW_BUFFER_BINDING             1+-- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     2+-- >+-- > const float pi_half = 1.570795;+-- > uint instance_id;+-- >+-- > struct BoundingSphere+-- > {+-- >   vec3 center;+-- >   float radius;+-- > };+-- >+-- > struct BoundingCone+-- > {+-- >   vec3 normal;+-- >   float angle;+-- > };+-- >+-- > struct ClusterDescriptor+-- > {+-- >   BoundingSphere sphere;+-- >   BoundingCone cone;+-- >   uint instance_idx;+-- > };+-- >+-- > struct InstanceData+-- > {+-- >   mat4 mvp_matrix;                      // mvp matrix.+-- >   vec4 frustum_planes[6];               // six frustum planes+-- >   mat4 model_matrix_transpose_inverse;  // inverse transpose of model matrix.+-- >   vec3 view_origin;                     // view original+-- > };+-- >+-- > struct InstanceDescriptor+-- > {+-- >   uint begin;+-- >   uint end;+-- >   uint cluster_count;+-- >   uint debug;+-- >   BoundingSphere sphere;+-- >   InstanceData instance_data;+-- > };+-- >+-- > struct DrawElementsCommand{+-- >   uint indexcount;+-- >   uint instanceCount;+-- >   uint firstIndex;+-- >   int  vertexoffset;+-- >   uint firstInstance;+-- >   uint cluster_id;+-- > };+-- >+-- > // indexed mode+-- > out gl_PerClusterHUAWEI{+-- >   uint gl_IndexCountHUAWEI;+-- >   uint gl_InstanceCountHUAWEI;+-- >   uint gl_FirstIndexHUAWEI;+-- >   int  gl_VertexOffsetHUAWEI;+-- >   uint gl_FirstInstanceHUAWEI;+-- >   uint gl_ClusterIdHUAWEI;+-- > };+-- >+-- >+-- > layout(binding = GPU_CLUSTER_DESCRIPTOR_BINDING, std430) readonly buffer cluster_descriptor_ssbo+-- > {+-- > 	ClusterDescriptor cluster_descriptors[];+-- > };+-- >+-- >+-- > layout(binding = GPU_DRAW_BUFFER_BINDING, std430) buffer draw_indirect_ssbo+-- > {+-- > 	DrawElementsCommand draw_commands[];+-- > };+-- >+-- > layout(binding = GPU_INSTANCE_DESCRIPTOR_BINDING, std430) buffer instance_descriptor_ssbo+-- > {+-- > 	InstanceDescriptor instance_descriptors[];+-- > };+-- >+-- > uniform bool disable_frustum_culling;+-- > uniform bool disable_backface_culling;+-- > uniform float debug_value;+-- >+-- >+-- > bool isFrontFaceVisible( vec3 sphere_center, float sphere_radius, vec3 cone_normal, float cone_angle )+-- > {+-- >   vec3 sphere_center_dir = normalize(sphere_center -+-- >                            instance_descriptors[instance_id].instance_data.view_origin);+-- >+-- >   float sin_cone_angle = sin(min(cone_angle, pi_half));+-- >   return dot(cone_normal, sphere_center_dir) < sin_cone_angle;+-- > }+-- >+-- > bool isSphereOutsideFrustum( vec3 sphere_center, float sphere_radius )+-- > {+-- >   bool isInside = false;+-- >+-- >   for(int i = 0; i < 6; i++)+-- >   {+-- >       isInside = isInside ||+-- >       (dot(instance_descriptors[instance_id].instance_data.frustum_planes[i].xyz,+-- >       sphere_center) + instance_descriptors[instance_id].instance_data.frustum_planes[i].w <+-- >       sphere_radius);+-- >   }+-- >   return isInside;+-- > }+-- >+-- >+-- > void main()+-- > {+-- >     uint cluster_id = gl_GlobalInvocationID.x;+-- >     ClusterDescriptor desc = cluster_descriptors[cluster_id];+-- >+-- >     // get instance description+-- >     instance_id = desc.instance_idx;+-- >     InstanceDescriptor inst_desc = instance_descriptors[instance_id];+-- >+-- >     //instance based culling+-- >     bool instance_render = (disable_frustum_culling ||+-- >                             !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius));+-- >+-- >     if( instance_render)+-- >     {+-- >         // cluster based culling+-- >         bool render = (disable_frustum_culling  || !isSphereOutsideFrustum(desc.sphere.center,+-- >         desc.sphere.radius)) && (disable_backface_culling ||+-- >         isFrontFaceVisible(desc.sphere.center, desc.sphere.radius, desc.cone.normal,+-- >         desc.cone.angle));+-- >+-- >         if (render)+-- >         {+-- >             // this cluster passed coarse-level culling, update built-in output variable.+-- >             // in case of indexed mode:+-- >             gl_IndexCountHUAWEI     = draw_commands[cluster_id].indexcount;+-- >             gl_InstanceCountHUAWEI  = draw_commands[cluster_id].instanceCount;+-- >             gl_FirstIndexHUAWEI     = draw_commands[cluster_id].firstIndex;+-- >             gl_VertexOffsetHUAWEI   = draw_commands[cluster_id].vertexoffset;+-- >             gl_FirstInstanceHUAWEI  = draw_commands[cluster_id].firstInstance;+-- >             gl_ClusterIdHUAWEI      = draw_commands[cluster_id].cluster_id;+-- >+-- >             // emit built-in output variables as a drawing command to subsequent+-- >             // rendering pipeline.+-- >             dispatchClusterHUAWEI();+-- >         }+-- >     }+-- > }+--+-- Example of graphics pipeline creation with cluster culling shader+--+-- > // create a cluster culling shader stage info structure.+-- > VkPipelineShaderStageCreateInfo ccsStageInfo{};+-- > ccsStageInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;+-- > ccsStageInfo.stage = VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI;+-- > ccsStageInfo.module = clustercullingshaderModule;+-- > ccsStageInfo.pName =  "main";+-- >+-- > // pipeline shader stage creation+-- > VkPipelineShaderStageCreateInfo shaderStages[] = { ccsStageInfo, vertexShaderStageInfo, fragmentShaderStageInfo };+-- >+-- > // create graphics pipeline+-- > VkGraphicsPipelineCreateInfo pipelineInfo{};+-- > pipelineInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;+-- > pipelineInfo.stageCount = 3;+-- > pipelineInfo.pStage = shaderStages;+-- > pipelineInfo.pVertexInputState = &vertexInputInfo;+-- > // ...+-- > VkPipeline graphicsPipeline;+-- > VkCreateGraphicsPipelines(device, VK_NULL_HANDLE, 1, &pipelineInfo, nullptr, &graphicsPipeline);+--+-- Example of launching the execution of cluster culling shader+--+-- > vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, graphicsPipeline);+-- > vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, 1, 1);+-- > vkCmdEndRenderPass(commandBuffer);+--+-- == Version History+--+-- -   Revision 1, 2022-11-18 (YuChang Wang)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',+-- 'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',+-- 'cmdDrawClusterHUAWEI', 'cmdDrawClusterIndirectHUAWEI'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader  ( cmdDrawClusterHUAWEI+                                                           , cmdDrawClusterIndirectHUAWEI+                                                           , PhysicalDeviceClusterCullingShaderPropertiesHUAWEI(..)+                                                           , PhysicalDeviceClusterCullingShaderFeaturesHUAWEI(..)+                                                           , HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION+                                                           , pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION+                                                           , HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME+                                                           , pattern HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME+                                                           ) where++import Vulkan.CStruct.Utils (FixedArray)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Buffer)+import Vulkan.Core10.Handles (Buffer(..))+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawClusterHUAWEI))+import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawClusterIndirectHUAWEI))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawClusterHUAWEI+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawClusterHUAWEI - Draw cluster culling work items+--+-- = Description+--+-- When the command is executed,a global workgroup consisting of+-- groupCountX*groupCountY*groupCountZ local workgroup is assembled.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+--     of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-flags-02696# Any+--     'Vulkan.Core10.Handles.Image' created with a+--     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-02697# For each set /n/ that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a descriptor set /must/+--     have been bound to /n/ at the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set+--     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create+--     the current 'Vulkan.Core10.Handles.Pipeline', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-maintenance4-06425# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a push constant value+--     /must/ have been set for the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+--     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+--     create the current 'Vulkan.Core10.Handles.Pipeline', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08114# Descriptors in each bound+--     descriptor set, specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08115# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08116# Descriptors in bound+--     descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08117# If the descriptors used by+--     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind+--     point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-02700# A valid pipeline /must/ be+--     bound to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-commandBuffer-02701# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command requires any dynamic state, that state+--     /must/ have been set or inherited (if the+--     @VK_NV_inherited_viewport_scissor@ extension is enabled) for+--     @commandBuffer@, and done so after any previously bound pipeline+--     with the corresponding state not specified as dynamic+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-02859# There /must/ not have been+--     any calls to dynamic state setting commands for any state not+--     specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object+--     bound to the pipeline bind point used by this command, since that+--     pipeline was bound+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-02702# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-02703# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-02704# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-uniformBuffers-06935# If any stage of+--     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a uniform buffer, and that+--     stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-storageBuffers-06936# If any stage of+--     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a storage buffer, and that+--     stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-commandBuffer-02707# If @commandBuffer@+--     is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be a protected resource+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewType-07752# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the image view’s @viewType@ /must/ match the @Dim@+--     operand of the @OpTypeImage@ as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-format-07753# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the image view’s @format@ /must/ match the numeric+--     format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as+--     described in the SPIR-V Sampled Type column of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat ???>+--     table+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-04115# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     image view’s format+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04474# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-sparseImageInt64Atomics-04475# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image as a result of this command, then the image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06978# If any+--     command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07288# Any shader invocation+--     executed by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-renderPass-02684# The current render+--     pass /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-subpass-02685# The subpass index of the+--     current render pass /must/ be equal to the @subpass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07748# If any shader statically+--     accesses an input attachment, a valid descriptor /must/ be bound to+--     the pipeline via a descriptor set+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-OpTypeImage-07468# If any shader+--     executed by this pipeline accesses an @OpTypeImage@ variable with a+--     @Dim@ operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07469# Input attachment views+--     accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition, and be created with a 'Vulkan.Core10.Handles.ImageView'+--     that is compatible with the attachment referenced by the subpass\'+--     @pInputAttachments@[@InputAttachmentIndex@] in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' as specified by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment Fragment Input Attachment Compatibility>+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06537# Memory backing image+--     subresources used as attachments in the current render pass /must/+--     not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06538# If any recorded command in+--     the current subpass will write to an image subresource as an+--     attachment, this command /must/ not read from the memory backing+--     that image subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06539# If any recorded command in+--     the current subpass will read from an image subresource used as an+--     attachment in any way other than as an attachment, this command+--     /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06886# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06887# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the stencil aspect, both front and back @writeMask@ are not+--     zero, and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-maxMultiviewInstanceIndex-02688# If the+--     draw is recorded in a render pass instance with multiview enabled,+--     the maximum instance index /must/ be less than or equal to+--     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-02689# If the+--     bound graphics pipeline was created with+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+--     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+--     has a depth\/stencil attachment, then that attachment /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+--     bit set+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-06666# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewportCount-03417# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-scissorCount-03418# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewportCount-03419# If the bound+--     graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic states enabled then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewportCount-04137# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewportCount-04138# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewportCount-04139# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewportCount-04140# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-VkPipelineVieportCreateInfo-04141# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+--     structure chained from+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-VkPipelineVieportCreateInfo-04142# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+--     structure chained from+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-04876# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-04877# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-logicOp-04878# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ be @1@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-blendEnable-04727# If rasterization is+--     not disabled in the bound graphics pipeline, then for each color+--     attachment in the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07284#+--     If rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-imageView-06172# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-imageView-06173# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-imageView-06174# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-imageView-06175# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-imageView-06176# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-imageView-06177# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewMask-06178# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06179# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06180# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-07616# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound pipeline equal to+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07749# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-attachmentCount-07750# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07751# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-06181# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-07617# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-06182# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-07618# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-imageView-06183# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-imageView-06184# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06185# If the+--     currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the corresponding element of the+--     @pColorAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-06186# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-06187# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07285#+--     If the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07286#+--     If the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07287#+--     If the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-renderPass-06198# If the current render+--     pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline /must/ have been created with a+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07619# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07620# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07621# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07622# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07623# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07624# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07625# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07626# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07627# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07628# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07629# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07630# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07631# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07632# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07633# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07634# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07635# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07636# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07637# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07638# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07639# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07640# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07641# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07642# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07643# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07644# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07645# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07646# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07647# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07648# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07649# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-pColorBlendEnables-07470# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07471# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-samples-07472# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-samples-07473# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07476# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07477# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07478# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07479# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07482# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07483# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07484# If the+--     bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     and the current subpass has a depth\/stencil attachment, then that+--     attachment /must/ have been created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+--     bit set+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07485# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07486# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07487# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-coverageModulationTableEnable-07488# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07489# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-coverageToColorEnable-07490# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-coverageReductionMode-07491# If this+--     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewportCount-07492# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-viewportCount-07493# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07494# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the+--     current subpass has any color attachments and @rasterizationSamples@+--     of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07495# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07496# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07497# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-stippledLineEnable-07498# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-stage-07073# If the currently bound+--     pipeline was created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-stage-06480# The bound graphics+--     pipeline /must/ not have been created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07074#+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07075#+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-pipelineStatistics-07076# The+--     @pipelineStatistics@ member used to create any active+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>+--     /must/ not contain+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',+--     or+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-07819# The pipelineStatistics+--     member used to create any active Pipeline Statistics Query must also+--     not contain+--     VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT,+--     VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-groupCountX-07820# @groupCountX@ /must/+--     be less than or equal to+--     'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI'::@maxWorkGroupCount@[0]+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-groupCountY-07821# @groupCountY@ /must/+--     be less than or equal to+--     'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI'::@maxWorkGroupCount@[1]+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-groupCountZ-07822# @groupCountZ@ /must/+--     be less than or equal to+--     'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI'::@maxWorkGroupCount@[2]+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-ClusterCullingHUAWEI-07823# The current+--     pipeline bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     /must/ contain a shader stage using the @ClusterCullingHUAWEI@+--     @Execution@ @Model@.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawClusterHUAWEI-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDrawClusterHUAWEI :: forall io+                      . (MonadIO io)+                     => -- | @commandBuffer@ is the command buffer into which the command will be+                        -- recorded.+                        CommandBuffer+                     -> -- | @groupCountX@ is the number of local workgroups to dispatch in the X+                        -- dimension.+                        ("groupCountX" ::: Word32)+                     -> -- | @groupCountY@ is the number of local workgroups to dispatch in the Y+                        -- dimension.+                        ("groupCountY" ::: Word32)+                     -> -- | @groupCountZ@ is the number of local workgroups to dispatch in the Z+                        -- dimension.+                        ("groupCountZ" ::: Word32)+                     -> io ()+cmdDrawClusterHUAWEI commandBuffer+                       groupCountX+                       groupCountY+                       groupCountZ = liftIO $ do+  let vkCmdDrawClusterHUAWEIPtr = pVkCmdDrawClusterHUAWEI (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawClusterHUAWEIPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawClusterHUAWEI is null" Nothing Nothing+  let vkCmdDrawClusterHUAWEI' = mkVkCmdDrawClusterHUAWEI vkCmdDrawClusterHUAWEIPtr+  traceAroundEvent "vkCmdDrawClusterHUAWEI" (vkCmdDrawClusterHUAWEI'+                                               (commandBufferHandle (commandBuffer))+                                               (groupCountX)+                                               (groupCountY)+                                               (groupCountZ))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawClusterIndirectHUAWEI+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()++-- | vkCmdDrawClusterIndirectHUAWEI - Issue an indirect cluster culling draw+-- into a command buffer+--+-- = Description+--+-- 'cmdDrawClusterIndirectHUAWEI' behaves similarly to+-- 'cmdDrawClusterHUAWEI' except that the parameters are read by the device+-- from a buffer during execution. The parameters of the dispatch are+-- encoded in a 'Vulkan.Core10.OtherTypes.DispatchIndirectCommand'+-- structure taken from buffer starting at offset.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-magFilter-04553# If a+--     'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06479# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-depth-compare-operation depth comparison>,+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this+--     command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering, as specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode+--     of either+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'+--     or+--     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX'+--     as a result of this command /must/ have a+--     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that+--     supports cubic filtering together with minmax filtering, as+--     specified by+--     'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@+--     returned by+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-flags-02696# Any+--     'Vulkan.Core10.Handles.Image' created with a+--     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV'+--     sampled as a result of this command /must/ only be sampled using a+--     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of+--     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-02697# For each set /n/+--     that is statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command, a descriptor+--     set /must/ have been bound to /n/ at the same pipeline bind point,+--     with a 'Vulkan.Core10.Handles.PipelineLayout' that is compatible for+--     set /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+--     create the current 'Vulkan.Core10.Handles.Pipeline', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-06425# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-maintenance4 maintenance4>+--     feature is not enabled, then for each push constant that is+--     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the+--     pipeline bind point used by this command, a push constant value+--     /must/ have been set for the same pipeline bind point, with a+--     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push+--     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to+--     create the current 'Vulkan.Core10.Handles.Pipeline', as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08114# Descriptors in each+--     bound descriptor set, specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/+--     be valid if they are statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was not created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08115# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the+--     bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08116# Descriptors in+--     bound descriptor buffers, specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     /must/ be valid if they are dynamically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'+--     was created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08117# If the descriptors+--     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point were specified via+--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT',+--     the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08119# If a descriptor is+--     dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created+--     with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT',+--     the descriptor memory /must/ be resident+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-02700# A valid pipeline+--     /must/ be bound to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02701# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command requires any dynamic state, that state+--     /must/ have been set or inherited (if the+--     @VK_NV_inherited_viewport_scissor@ extension is enabled) for+--     @commandBuffer@, and done so after any previously bound pipeline+--     with the corresponding state not specified as dynamic+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-02859# There /must/ not+--     have been any calls to dynamic state setting commands for any state+--     not specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command, since+--     that pipeline was bound+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-02702# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used to sample from any+--     'Vulkan.Core10.Handles.Image' with a+--     'Vulkan.Core10.Handles.ImageView' of the type+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY',+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or+--     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in+--     any shader stage+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-02703# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions with+--     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-02704# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized+--     coordinates, that sampler /must/ not be used with any of the SPIR-V+--     @OpImageSample*@ or @OpImageSparseSample*@ instructions that+--     includes a LOD bias or any offset values, in any shader stage+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-uniformBuffers-06935# If any+--     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command accesses a uniform buffer,+--     and that stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-storageBuffers-06936# If any+--     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command accesses a storage buffer,+--     and that stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /must/ not access values outside+--     of the range of the buffer as specified in the descriptor set bound+--     to the same pipeline bind point+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02707# If+--     @commandBuffer@ is an unprotected command buffer and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-protectedNoFault protectedNoFault>+--     is not supported, any resource accessed by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be a protected resource+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewType-07752# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the image view’s @viewType@ /must/ match the @Dim@+--     operand of the @OpTypeImage@ as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-operation-validation ???>+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-format-07753# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed as a result of this+--     command, then the image view’s @format@ /must/ match the numeric+--     format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as+--     described in the SPIR-V Sampled Type column of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-numericformat ???>+--     table+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-04115# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     image view’s format+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-04469# If a+--     'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@+--     as a result of this command, then the @Type@ of the @Texel@ operand+--     of that instruction /must/ have at least as many components as the+--     buffer view’s format+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04470# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04471# If a+--     'Vulkan.Core10.Handles.ImageView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04472# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component+--     width is accessed as a result of this command, the @SampledType@ of+--     the @OpTypeImage@ operand of that instruction /must/ have a @Width@+--     of 64+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-SampledType-04473# If a+--     'Vulkan.Core10.Handles.BufferView' with a+--     'Vulkan.Core10.Enums.Format.Format' that has a component width less+--     than 64-bit is accessed as a result of this command, the+--     @SampledType@ of the @OpTypeImage@ operand of that instruction+--     /must/ have a @Width@ of 32+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04474#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Image' objects+--     created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sparseImageInt64Atomics-04475#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects+--     created with the+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--     flag /must/ not be accessed by atomic instructions through an+--     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this+--     command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06971#+--     If @OpImageWeightedSampleQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06972#+--     If @OpImageWeightedSampleQCOM@ uses a+--     'Vulkan.Core10.Handles.ImageView' as a sample weight image as a+--     result of this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ is used to sample a+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSSDQCOM-06974#+--     If @OpImageBlockMatchSSDQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06975#+--     If @OpImageBlockMatchSADQCOM@ is used to read from an+--     'Vulkan.Core10.Handles.ImageView' as a result of this command, then+--     the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchSADQCOM-06976#+--     If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06977#+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06978#+--     If any command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07288# Any shader+--     invocation executed by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-renderPass-02684# The current+--     render pass /must/ be+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible>+--     with the @renderPass@ member of the+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure+--     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-subpass-02685# The subpass+--     index of the current render pass /must/ be equal to the @subpass@+--     member of the 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'+--     structure specified when creating the+--     'Vulkan.Core10.Handles.Pipeline' bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07748# If any shader+--     statically accesses an input attachment, a valid descriptor /must/+--     be bound to the pipeline via a descriptor set+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeImage-07468# If any+--     shader executed by this pipeline accesses an @OpTypeImage@ variable+--     with a @Dim@ operand of @SubpassData@, it /must/ be decorated with+--     an @InputAttachmentIndex@ that corresponds to a valid input+--     attachment in the current subpass+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07469# Input attachment+--     views accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition, and be created with a 'Vulkan.Core10.Handles.ImageView'+--     that is compatible with the attachment referenced by the subpass\'+--     @pInputAttachments@[@InputAttachmentIndex@] in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' as specified by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#compatibility-inputattachment Fragment Input Attachment Compatibility>+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06537# Memory backing+--     image subresources used as attachments in the current render pass+--     /must/ not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06538# If any recorded+--     command in the current subpass will write to an image subresource as+--     an attachment, this command /must/ not read from the memory backing+--     that image subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539# If any recorded+--     command in the current subpass will read from an image subresource+--     used as an attachment in any way other than as an attachment, this+--     command /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06886# If the current+--     render pass instance uses a depth\/stencil attachment with a+--     read-only layout for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06887# If the current+--     render pass instance uses a depth\/stencil attachment with a+--     read-only layout for the stencil aspect, both front and back+--     @writeMask@ are not zero, and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-maxMultiviewInstanceIndex-02688#+--     If the draw is recorded in a render pass instance with multiview+--     enabled, the maximum instance index /must/ be less than or equal to+--     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-02689# If+--     the bound graphics pipeline was created with+--     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+--     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass+--     has a depth\/stencil attachment, then that attachment /must/ have+--     been created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+--     bit set+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06666# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03417# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-scissorCount-03418# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ match the+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@+--     of the pipeline+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-03419# If the+--     bound graphics pipeline state was created with both the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic states enabled then both+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     and+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ match the @scissorCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetScissorWithCount'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04137# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04138# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04139# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-04140# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04141#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+--     structure chained from+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04142#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled and a+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'+--     structure chained from+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', then the+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'::@exclusiveScissorCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-04876# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-04877# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE'+--     dynamic state enabled then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-logicOp-04878# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @viewportCount@ parameter of+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--     /must/ be @1@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-blendEnable-04727# If+--     rasterization is not disabled in the bound graphics pipeline, then+--     for each color attachment in the subpass, if the corresponding image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07284#+--     If rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06172# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06173# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06174# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06175# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06176# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pDepthAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pDepthAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the depth attachment+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06177# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the @imageView@ member of @pStencilAttachment@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', and the @layout@ member of+--     @pStencilAttachment@ is+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL',+--     this command /must/ not write any values to the stencil attachment+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewMask-06178# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@viewMask@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06179# If+--     the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound graphics pipeline /must/ have been created with+--     a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@+--     equal to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06180# If+--     the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-07616# If+--     the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@+--     used to create the currently bound pipeline equal to+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07749# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-attachmentCount-07750# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07751# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-06181# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-07617# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-06182# If+--     the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the 'Vulkan.Core10.Enums.Format.Format' used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-07618# If+--     the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06183# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06184# If the current+--     render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the currently+--     bound graphics pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06185# If+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the corresponding element of the+--     @pColorAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-06186# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-06187# If+--     the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created with a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of the+--     @depthStencilAttachmentSamples@ member of+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07285#+--     If the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and the current render pass instance was+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     with a+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@+--     parameter greater than @0@, then each element of the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@+--     array with a @imageView@ not equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created+--     with a sample count equal to the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07286#+--     If the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07287#+--     If the current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline was created without a+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'+--     or+--     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'+--     structure, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     used to create the currently bound graphics pipeline /must/ be equal+--     to the sample count used to create+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-renderPass-06198# If the+--     current render pass instance was begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',+--     the currently bound pipeline /must/ have been created with a+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@+--     equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07619# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07620# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07621# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07622# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07623# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07624# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07625# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07626# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07627# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07628# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07629# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07630# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07631# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07632# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07633# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07634# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07635# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07636# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07637# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07638# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07639# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07640# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07641# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07642# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07643# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07644# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07645# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07646# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07647# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07648# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07649# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'+--     must have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pColorBlendEnables-07470# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07471# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-samples-07472# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-samples-07473# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07476# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07477# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07478# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07479# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07482#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07483#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07484# If+--     the bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     and the current subpass has a depth\/stencil attachment, then that+--     attachment /must/ have been created with the+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT'+--     bit set+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07485# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07486# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07487# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-coverageModulationTableEnable-07488#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07489# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-coverageToColorEnable-07490# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-coverageReductionMode-07491# If+--     this @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07492# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     dynamic state enabled, but not the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'+--     dynamic state enabled, then the bound graphics pipeline /must/ have+--     been created with+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@+--     greater or equal to the @viewportCount@ parameter in the last call+--     to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07493# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /must/ be greater than or equal to the @viewportCount@ parameter in+--     the last call to+--     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07494# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     the current subpass has any color attachments and+--     @rasterizationSamples@ of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07495# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07496# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07497# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-stippledLineEnable-07498# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-stage-07073# If the currently+--     bound pipeline was created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-stage-06480# The bound graphics+--     pipeline /must/ not have been created with the+--     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@+--     member of an element of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pStages@ set+--     to+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07074#+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07075#+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-pipelineStatistics-07076# The+--     @pipelineStatistics@ member used to create any active+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>+--     /must/ not contain+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',+--     or+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-buffer-02708# If @buffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-buffer-02709# @buffer@ /must/+--     have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-offset-02710# @offset@ /must/+--     be a multiple of @4@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02711#+--     @commandBuffer@ /must/ not be a protected command buffer+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-drawCount-02718# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>+--     feature is not enabled, @drawCount@ /must/ be @0@ or @1@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-drawCount-02719# @drawCount@+--     /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-ClusterCullingHUAWEI-07824# The+--     current pipeline bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     /must/ contain a shader stage using the @ClusterCullingHUAWEI@+--     @Execution@ @Model@.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-buffer-parameter# @buffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-renderpass# This command /must/+--     only be called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-commonparent# Both of @buffer@,+--     and @commandBuffer@ /must/ have been created, allocated, or+--     retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawClusterIndirectHUAWEI :: forall io+                              . (MonadIO io)+                             => -- | @commandBuffer@ is the command buffer into which the command is+                                -- recorded.+                                CommandBuffer+                             -> -- | @buffer@ is the buffer containing draw parameters.+                                Buffer+                             -> -- | @offset@ is the byte offset into @buffer@ where parameters begin.+                                ("offset" ::: DeviceSize)+                             -> io ()+cmdDrawClusterIndirectHUAWEI commandBuffer buffer offset = liftIO $ do+  let vkCmdDrawClusterIndirectHUAWEIPtr = pVkCmdDrawClusterIndirectHUAWEI (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawClusterIndirectHUAWEIPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawClusterIndirectHUAWEI is null" Nothing Nothing+  let vkCmdDrawClusterIndirectHUAWEI' = mkVkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEIPtr+  traceAroundEvent "vkCmdDrawClusterIndirectHUAWEI" (vkCmdDrawClusterIndirectHUAWEI'+                                                       (commandBufferHandle (commandBuffer))+                                                       (buffer)+                                                       (offset))+  pure $ ()+++-- | VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI - Structure+-- describing cluster culling shader properties supported by an+-- implementation+--+-- = Description+--+-- If the 'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceClusterCullingShaderPropertiesHUAWEI = PhysicalDeviceClusterCullingShaderPropertiesHUAWEI+  { -- | @maxWorkGroupCount@[3] is the maximum number of local workgroups that+    -- can be launched by a single command. These three value represent the+    -- maximum local workgroup count in the X, Y and Z dimensions,+    -- respectively. In the current implementation, the values of Y and Z are+    -- both implicitly set as one. groupCountX of DrawCluster command must be+    -- less than or equal to maxWorkGroupCount[0].+    maxWorkGroupCount :: (Word32, Word32, Word32)+  , -- | @maxWorkGroupSize@[3] is the maximum size of a local workgroup. These+    -- three value represent the maximum local workgroup size in the X, Y and Z+    -- dimensions, respectively. The x, y and z sizes, as specified by the+    -- @LocalSize@ or @LocalSizeId@ execution mode or by the object decorated+    -- by the WorkgroupSize decoration in shader modules, must be less than or+    -- equal to the corresponding limit. In the current implementation, the+    -- maximum workgroup size of the X dimension is 32, the others are 1.+    maxWorkGroupSize :: (Word32, Word32, Word32)+  , -- | @maxOutputClusterCount@ is the maximum number of output cluster a single+    -- cluster culling shader workgroup can emit.+    maxOutputClusterCount :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceClusterCullingShaderPropertiesHUAWEI)+#endif+deriving instance Show PhysicalDeviceClusterCullingShaderPropertiesHUAWEI++instance ToCStruct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI where+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceClusterCullingShaderPropertiesHUAWEI{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    let pMaxWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 3 Word32)))+    case (maxWorkGroupCount) of+      (e0, e1, e2) -> do+        poke (pMaxWorkGroupCount' :: Ptr Word32) (e0)+        poke (pMaxWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)+    let pMaxWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 28 :: Ptr (FixedArray 3 Word32)))+    case (maxWorkGroupSize) of+      (e0, e1, e2) -> do+        poke (pMaxWorkGroupSize' :: Ptr Word32) (e0)+        poke (pMaxWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (maxOutputClusterCount)+    f+  cStructSize = 48+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    let pMaxWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray 3 Word32)))+    case ((zero, zero, zero)) of+      (e0, e1, e2) -> do+        poke (pMaxWorkGroupCount' :: Ptr Word32) (e0)+        poke (pMaxWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)+    let pMaxWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 28 :: Ptr (FixedArray 3 Word32)))+    case ((zero, zero, zero)) of+      (e0, e1, e2) -> do+        poke (pMaxWorkGroupSize' :: Ptr Word32) (e0)+        poke (pMaxWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+    f++instance FromCStruct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI where+  peekCStruct p = do+    let pmaxWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 16 :: Ptr (FixedArray 3 Word32)))+    maxWorkGroupCount0 <- peek @Word32 ((pmaxWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))+    maxWorkGroupCount1 <- peek @Word32 ((pmaxWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))+    maxWorkGroupCount2 <- peek @Word32 ((pmaxWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))+    let pmaxWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 28 :: Ptr (FixedArray 3 Word32)))+    maxWorkGroupSize0 <- peek @Word32 ((pmaxWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))+    maxWorkGroupSize1 <- peek @Word32 ((pmaxWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))+    maxWorkGroupSize2 <- peek @Word32 ((pmaxWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))+    maxOutputClusterCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+    pure $ PhysicalDeviceClusterCullingShaderPropertiesHUAWEI+             ((maxWorkGroupCount0, maxWorkGroupCount1, maxWorkGroupCount2))+             ((maxWorkGroupSize0, maxWorkGroupSize1, maxWorkGroupSize2))+             maxOutputClusterCount++instance Storable PhysicalDeviceClusterCullingShaderPropertiesHUAWEI where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceClusterCullingShaderPropertiesHUAWEI where+  zero = PhysicalDeviceClusterCullingShaderPropertiesHUAWEI+           (zero, zero, zero)+           (zero, zero, zero)+           zero+++-- | VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI - Structure+-- describing whether cluster culling shader is enabled+--+-- = Description+--+-- If the 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+  { -- | #features-clustercullingShader# @clustercullingShader@ specifies whether+    -- cluster culling shader is supported.+    clustercullingShader :: Bool+  , -- | #features-multiviewClusterCullingShader# @multiviewClusterCullingShader@+    -- specifies whether multiview is supported.+    multiviewClusterCullingShader :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI)+#endif+deriving instance Show PhysicalDeviceClusterCullingShaderFeaturesHUAWEI++instance ToCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (clustercullingShader))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (multiviewClusterCullingShader))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where+  peekCStruct p = do+    clustercullingShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    multiviewClusterCullingShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+             (bool32ToBool clustercullingShader)+             (bool32ToBool multiviewClusterCullingShader)++instance Storable PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where+  zero = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+           zero+           zero+++type HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION"+pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION :: forall a . Integral a => a+pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1+++type HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader"++-- No documentation found for TopLevel "VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME"+pattern HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader"+
+ src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot view
@@ -0,0 +1,394 @@+{-# language CPP #-}+-- | = Name+--+-- VK_HUAWEI_cluster_culling_shader - device extension+--+-- == VK_HUAWEI_cluster_culling_shader+--+-- [__Name String__]+--     @VK_HUAWEI_cluster_culling_shader@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     405+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+-- [__Contact__]+--+--     -   Yuchang Wang+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_HUAWEI_cluster_culling_shader] @richard_Wang2%0A*Here describe the issue or question you have about the VK_HUAWEI_cluster_culling_shader extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_HUAWEI_cluster_culling_shader.adoc VK_HUAWEI_cluster_culling_shader>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-11-17+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/HUAWEI/SPV_HUAWEI_cluster_culling_shader.html SPV_HUAWEI_cluster_culling_shader>.+--+--     -   This extension provides API support for+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/huawei/GLSL_HUAWEI_cluster_culling_shader.txt GL_HUAWEI_cluster_culling_shader>.+--+-- [__Contributors__]+--+--     -   Yuchang Wang, Huawei+--+--     -   Juntao Li, Huawei+--+--     -   Pan Gao, Huawei+--+--     -   Jie Cao, Huawei+--+--     -   Yunjin Zhang, Huawei+--+--     -   Shujie Zhou, Huawei+--+--     -   Chaojun Wang, Huawei+--+--     -   Jiajun Hu, Huawei+--+--     -   Cong Zhang, Huawei+--+-- == Description+--+-- Cluster Culling Shader(CCS) is similar to the existing compute shader;+-- its main purpose is to provide an execution environment in order to+-- perform coarse-level geometry culling and level-of-detail selection more+-- efficiently on GPU.+--+-- The traditional 2-pass GPU culling solution using compute shader needs a+-- pipeline barrier between compute pipeline and graphics pipeline,+-- sometimes, in order to optimize performance, an additional compaction+-- process may also be required. this extension improve the above mentioned+-- shortcomings which can allow compute shader directly emit visible+-- clusters to following graphics pipeline.+--+-- A set of new built-in output variables are used to express visible+-- cluster, in addition, a new built-in function is used to emit these+-- variables from CCS to IA stage, then IA can use these variables to+-- fetches vertices of visible cluster and drive vertex shader to shading+-- these vertices. As stated above, both IA and vertex shader are+-- preserved, vertex shader still used for vertices position shading,+-- instead of directly outputting a set of transformed vertices from+-- compute shader, this makes CCS more suitable for mobile GPUs.+--+-- == New Commands+--+-- -   'cmdDrawClusterHUAWEI'+--+-- -   'cmdDrawClusterIndirectHUAWEI'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI'+--+-- == New Enum Constants+--+-- -   'HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME'+--+-- -   'HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI'+--+-- -   Extending+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QueryPipelineStatisticFlagBits':+--+--     -   'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI'+--+-- -   Extending+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits':+--+--     -   'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI'+--+-- == New Built-In Variables+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-indexcounthuawei IndexCountHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-vertexcounthuawei VertexCountHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-instancecounthuawei InstanceCountHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-firstindexhuawei FirstIndexHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-firstvertexhuawei FirstVertexHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-vertexoffsethuawei VertexOffsetHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-firstinstancehuawei FirstInstanceHUAWEI>+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clusteridhuawei ClusterIdHUAWEI>+--+-- == New SPIR-V Capability+--+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ClusterCullingShadingHUAWEI ClusterCullingShadingHUAWEI>+--+-- == Sample code+--+-- Example of cluster culling in a GLSL shader+--+-- > #extension GL_HUAWEI_cluster_culling_shader: enable+-- >+-- > #define GPU_WARP_SIZE                   32+-- > #define GPU_GROUP_SIZE                  GPU_WARP_SIZE+-- >+-- > #define GPU_CLUSTER_PER_INVOCATION      1+-- > #define GPU_CLUSTER_PER_WORKGROUP       (GPU_GROUP_SIZE * GPU_CLUSTER_PER_INVOCATION)+-- >+-- > // Number of threads per workgroup+-- > // - 1D only+-- > // - warpsize = 32+-- > layout(local_size_x=GPU_GROUP_SIZE, local_size_y=1, local_size_z=1) in;+-- >+-- >+-- > #define GPU_CLUSTER_DESCRIPTOR_BINDING      0+-- > #define GPU_DRAW_BUFFER_BINDING             1+-- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     2+-- >+-- > const float pi_half = 1.570795;+-- > uint instance_id;+-- >+-- > struct BoundingSphere+-- > {+-- >   vec3 center;+-- >   float radius;+-- > };+-- >+-- > struct BoundingCone+-- > {+-- >   vec3 normal;+-- >   float angle;+-- > };+-- >+-- > struct ClusterDescriptor+-- > {+-- >   BoundingSphere sphere;+-- >   BoundingCone cone;+-- >   uint instance_idx;+-- > };+-- >+-- > struct InstanceData+-- > {+-- >   mat4 mvp_matrix;                      // mvp matrix.+-- >   vec4 frustum_planes[6];               // six frustum planes+-- >   mat4 model_matrix_transpose_inverse;  // inverse transpose of model matrix.+-- >   vec3 view_origin;                     // view original+-- > };+-- >+-- > struct InstanceDescriptor+-- > {+-- >   uint begin;+-- >   uint end;+-- >   uint cluster_count;+-- >   uint debug;+-- >   BoundingSphere sphere;+-- >   InstanceData instance_data;+-- > };+-- >+-- > struct DrawElementsCommand{+-- >   uint indexcount;+-- >   uint instanceCount;+-- >   uint firstIndex;+-- >   int  vertexoffset;+-- >   uint firstInstance;+-- >   uint cluster_id;+-- > };+-- >+-- > // indexed mode+-- > out gl_PerClusterHUAWEI{+-- >   uint gl_IndexCountHUAWEI;+-- >   uint gl_InstanceCountHUAWEI;+-- >   uint gl_FirstIndexHUAWEI;+-- >   int  gl_VertexOffsetHUAWEI;+-- >   uint gl_FirstInstanceHUAWEI;+-- >   uint gl_ClusterIdHUAWEI;+-- > };+-- >+-- >+-- > layout(binding = GPU_CLUSTER_DESCRIPTOR_BINDING, std430) readonly buffer cluster_descriptor_ssbo+-- > {+-- > 	ClusterDescriptor cluster_descriptors[];+-- > };+-- >+-- >+-- > layout(binding = GPU_DRAW_BUFFER_BINDING, std430) buffer draw_indirect_ssbo+-- > {+-- > 	DrawElementsCommand draw_commands[];+-- > };+-- >+-- > layout(binding = GPU_INSTANCE_DESCRIPTOR_BINDING, std430) buffer instance_descriptor_ssbo+-- > {+-- > 	InstanceDescriptor instance_descriptors[];+-- > };+-- >+-- > uniform bool disable_frustum_culling;+-- > uniform bool disable_backface_culling;+-- > uniform float debug_value;+-- >+-- >+-- > bool isFrontFaceVisible( vec3 sphere_center, float sphere_radius, vec3 cone_normal, float cone_angle )+-- > {+-- >   vec3 sphere_center_dir = normalize(sphere_center -+-- >                            instance_descriptors[instance_id].instance_data.view_origin);+-- >+-- >   float sin_cone_angle = sin(min(cone_angle, pi_half));+-- >   return dot(cone_normal, sphere_center_dir) < sin_cone_angle;+-- > }+-- >+-- > bool isSphereOutsideFrustum( vec3 sphere_center, float sphere_radius )+-- > {+-- >   bool isInside = false;+-- >+-- >   for(int i = 0; i < 6; i++)+-- >   {+-- >       isInside = isInside ||+-- >       (dot(instance_descriptors[instance_id].instance_data.frustum_planes[i].xyz,+-- >       sphere_center) + instance_descriptors[instance_id].instance_data.frustum_planes[i].w <+-- >       sphere_radius);+-- >   }+-- >   return isInside;+-- > }+-- >+-- >+-- > void main()+-- > {+-- >     uint cluster_id = gl_GlobalInvocationID.x;+-- >     ClusterDescriptor desc = cluster_descriptors[cluster_id];+-- >+-- >     // get instance description+-- >     instance_id = desc.instance_idx;+-- >     InstanceDescriptor inst_desc = instance_descriptors[instance_id];+-- >+-- >     //instance based culling+-- >     bool instance_render = (disable_frustum_culling ||+-- >                             !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius));+-- >+-- >     if( instance_render)+-- >     {+-- >         // cluster based culling+-- >         bool render = (disable_frustum_culling  || !isSphereOutsideFrustum(desc.sphere.center,+-- >         desc.sphere.radius)) && (disable_backface_culling ||+-- >         isFrontFaceVisible(desc.sphere.center, desc.sphere.radius, desc.cone.normal,+-- >         desc.cone.angle));+-- >+-- >         if (render)+-- >         {+-- >             // this cluster passed coarse-level culling, update built-in output variable.+-- >             // in case of indexed mode:+-- >             gl_IndexCountHUAWEI     = draw_commands[cluster_id].indexcount;+-- >             gl_InstanceCountHUAWEI  = draw_commands[cluster_id].instanceCount;+-- >             gl_FirstIndexHUAWEI     = draw_commands[cluster_id].firstIndex;+-- >             gl_VertexOffsetHUAWEI   = draw_commands[cluster_id].vertexoffset;+-- >             gl_FirstInstanceHUAWEI  = draw_commands[cluster_id].firstInstance;+-- >             gl_ClusterIdHUAWEI      = draw_commands[cluster_id].cluster_id;+-- >+-- >             // emit built-in output variables as a drawing command to subsequent+-- >             // rendering pipeline.+-- >             dispatchClusterHUAWEI();+-- >         }+-- >     }+-- > }+--+-- Example of graphics pipeline creation with cluster culling shader+--+-- > // create a cluster culling shader stage info structure.+-- > VkPipelineShaderStageCreateInfo ccsStageInfo{};+-- > ccsStageInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;+-- > ccsStageInfo.stage = VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI;+-- > ccsStageInfo.module = clustercullingshaderModule;+-- > ccsStageInfo.pName =  "main";+-- >+-- > // pipeline shader stage creation+-- > VkPipelineShaderStageCreateInfo shaderStages[] = { ccsStageInfo, vertexShaderStageInfo, fragmentShaderStageInfo };+-- >+-- > // create graphics pipeline+-- > VkGraphicsPipelineCreateInfo pipelineInfo{};+-- > pipelineInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;+-- > pipelineInfo.stageCount = 3;+-- > pipelineInfo.pStage = shaderStages;+-- > pipelineInfo.pVertexInputState = &vertexInputInfo;+-- > // ...+-- > VkPipeline graphicsPipeline;+-- > VkCreateGraphicsPipelines(device, VK_NULL_HANDLE, 1, &pipelineInfo, nullptr, &graphicsPipeline);+--+-- Example of launching the execution of cluster culling shader+--+-- > vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, graphicsPipeline);+-- > vkCmdDrawClusterHUAWEI(commandBuffer, groupCountX, 1, 1);+-- > vkCmdEndRenderPass(commandBuffer);+--+-- == Version History+--+-- -   Revision 1, 2022-11-18 (YuChang Wang)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',+-- 'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',+-- 'cmdDrawClusterHUAWEI', 'cmdDrawClusterIndirectHUAWEI'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader  ( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+                                                           , PhysicalDeviceClusterCullingShaderPropertiesHUAWEI+                                                           ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceClusterCullingShaderFeaturesHUAWEI++instance ToCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+instance Show PhysicalDeviceClusterCullingShaderFeaturesHUAWEI++instance FromCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+++data PhysicalDeviceClusterCullingShaderPropertiesHUAWEI++instance ToCStruct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI+instance Show PhysicalDeviceClusterCullingShaderPropertiesHUAWEI++instance FromCStruct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI+
src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs view
@@ -85,8 +85,8 @@ --     are directly specified in 'RenderPassCreateInfo2KHR'. -- -- -   'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.InputAttachmentAspectReference'::@aspectMask@---     is now specified in the relevant input attachment description in---     'AttachmentDescription2KHR'::@aspectMask@+--     is now specified in the relevant input attachment reference in+--     'AttachmentReference2KHR'::@aspectMask@ -- -- The details of these mappings are explained fully in the new structures. --
src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs view
@@ -100,7 +100,7 @@ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageReadWithoutFormat shaderStorageImageReadWithoutFormat> -- and -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderStorageImageWriteWithoutFormat shaderStorageImageWriteWithoutFormat>--- implementations may not report+-- features may not report -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR' -- and -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR'
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -1506,7 +1506,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06181# If the --     current render pass instance was begun with
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -1131,7 +1131,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181# If the current --     render pass instance was begun with@@ -2865,7 +2866,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181# If the --     current render pass instance was begun with@@ -4649,7 +4651,8 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' --     /must/ have been called in the current command buffer prior to this---     drawing command+--     drawing command for each discard rectangle in+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'::@discardRectangleCount@ -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181# If --     the current render pass instance was begun with
src/Vulkan/SPIRVRequirements.hs view
@@ -16,6 +16,7 @@ import Vulkan.Core10.Handles (PhysicalDevice) import Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStorageFeatures(..)) import Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT(..))+import Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI(..)) import Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV(..)) import Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV(..)) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures(..))@@ -85,6 +86,7 @@ import Vulkan.Extensions.VK_GOOGLE_decorate_string (pattern GOOGLE_DECORATE_STRING_EXTENSION_NAME) import Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1 (pattern GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME) import Vulkan.Extensions.VK_GOOGLE_user_type (pattern GOOGLE_USER_TYPE_EXTENSION_NAME)+import Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (pattern HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME) import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_16bit_storage (pattern KHR_16BIT_STORAGE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_8bit_storage (pattern KHR_8BIT_STORAGE_EXTENSION_NAME)@@ -3338,6 +3340,25 @@       , RequireDeviceExtension           { deviceExtensionLayerName = Nothing           , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ClusterCullingShadingHUAWEI" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "clustercullingShader"+          , checkFeature = \PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{clustercullingShader} -> clustercullingShader+          , enableFeature = \PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{..} -> PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{clustercullingShader = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME           , deviceExtensionMinVersion = 0           }       ]
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 238+pattern HEADER_VERSION = 239   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 238+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 239   pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.24.3+version:        3.24.4 synopsis:       Bindings to the Vulkan graphics API. description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category:       Graphics@@ -434,6 +434,7 @@       Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1       Vulkan.Extensions.VK_GOOGLE_surfaceless_query       Vulkan.Extensions.VK_GOOGLE_user_type+      Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader       Vulkan.Extensions.VK_HUAWEI_invocation_mask       Vulkan.Extensions.VK_HUAWEI_subpass_shading       Vulkan.Extensions.VK_IMG_filter_cubic